I have some questions about disassembled actors which would help me make a little more sense of all the code and data if answered. I also plan to come up with a list of mappings for each actor panel in the unknown areas and beyond 0x128 bytes from the start of the panel.
I was wondering if there were set of default values each register contained at the start of the actor? At the very start I would assume that a0 holds the RAM address to the "actor panel" and a1 holds the RAM address to the object due to the arguments which need to be provided to an actor's "initialization" function? I was reading some notes on the disassembly of the "en_arrow" actor and it gave me the values that each register starts off with... I doubt that those notes apply to every single actor. Here are the notes I am referring to: click me
How would I know how large an actor panel would be? At first I thought that each actor panel was defined by the .data section of each actor so that would mean that the actor panel would be as large as the .data section, but I realized that the start of the .data section is not always the start of the initial actor panel. Plus, you could find the virtual offsets of an actor panel through the actor table.
Lastly, is .rodata also a part of a RAM actor? If so, where? Also, is it possible to change one of values in the .rodata via the RAM? I read in one thread on Z64, that trying to change any of the .rodata in link's RAM actor resulted in the changes not being made... Here is a link to the thread: click me
I forgot to include this one... I want to know if the .bss section is also locateable through actor panel?
Question
Jason777
I have some questions about disassembled actors which would help me make a little more sense of all the code and data if answered. I also plan to come up with a list of mappings for each actor panel in the unknown areas and beyond 0x128 bytes from the start of the panel.
Thanks to anyone who can help.
Link to comment
Share on other sites
3 answers to this question
Recommended Posts