|QUOTE (grovespaz @ Feb 5 2010, 11:57)|
|QUOTE (ghost of delete key @ Feb 5 2010, 13:31)|
|Well, every bit of this stuff coming out helps me link routines...|
This "opcode handler" routine is a large jump table resolver called by one "mission manager" routine, which first calls the wasted-busted check, does some thinking, then calls the opcode handler.
This routine is called by three different routines involved in loading the game frontend.
Can you clarify which routine is called by three different other routines? Because, from what I can see in IDA, the opcode interpreter only gets called from 44FBE0.
I should have said:
"the /Mission Mgr/ is called by three different routines involved in loading the game frontend."
Not enough coffee in the world...
The opcode interpreter itself, in it's turn, does something like this:
Well, it's a bít more complicated, but that's the gist of it.
|I find the PseudoCode tool one of the best inventions ever |
PseudoCode tool? In IDA??? I have no such goodies in my v4.3.0. Been looking for a plugin or something...
Here you can see your if/then tree. there seems little rhyme or reason for the many banks of opcode handlers, but there you have it.
This is the routine that calls the main handler; it thinks about the busted-wastedcheck before deciding to dive into opcode hell...
and this is called by one routine which checks to see if it should even bother, or go on with loading duties That one is called by three different loading routines.
Here you can see the call chart between routines, as you can see there are tentative names for the front-end loaders.
Whats the point?
Matching the SCM opcodes with their subroutines is helping me group and classify piles of memory addresses that I haven't seen documented anywhere.
I might be tripping, but it seems that there are multiple copies of certain structures like the player/actor characters, depending on what routine wants to do what in memory. I don't mean copies of the structure made during creation of models, I mean separate bases.
Needs more study.
And I think opcodes are going slightly off-topic.
|I've noticed I was searching this thread a lot, and searching a thread can take some time here, so I clicked 'Print this topic', and saved the resulting HTML page which contained the whole thread, in a clean layout on my computer. I can just search in my browser, and it's a lot faster ^.^|
Me too. Now I have more pages of GTAF on my drive than game files. Easy peasy...