I've managed to find the data for equipment parameters, abilities, commands/command sets, sprite/gender pointers, and jobs (if anyone wants that stuff). However, neither the job data nor the sprite/gender pointers hold any information on how the game assigns additional 'special' jobs (such as Bard or Heritor, for anyone who's played the game) or removes jobs (such as preventing certain Moogles from becoming Chocobo Knights) from certain characters while still giving them access to a generic 'job wheel' (such as Moogle or Hume, matching the above example).
I do think the code uses character ID to determine who gets what, since when I changed that byte ($0212B125) from $01 to $03 for Luso in the RAM while playing, not only did he suddenly gain access to the Heritor job, he looked like Adelle (yet kept his name/everything else). IDs of interest are:
But this is where I'm having trouble: tracing the routine responsible for this. I tried using DeSmuME but this is so different from what I'm used to (Geiger's debugger/SNES/65c816)...I don't think it can set breakpoints?? I looked but couldn't find an option for that. I'm assuming the routine is part of the ARM9 architecture (which, to me, is really complete gobbledegook), but I have no confirmation of that.
This request probably belongs on the newbie board, but has anyone here run some disassembly for this particular game and/or can they clue me in on the basics so I can find these routines myself (such as SETTING BREAKPOINTS, for chrissakes)? Google turned up a couple hopeful leads, but that sadly ended in 404s.