I normally do FF8 stuff but this is how I would go about it:
1.) load a save game
2.) attach a debugger (e.g. Ollydbg) to the FF7 process
3.) search for the save game data in memory - it should mostly match the save game file, it should be in memory in
this format4.) put a memory breakpoint on the EXP of an out of party character
5.) start a battle
6.) if the breakpoint triggers after the battle, trace the code back and look for where the EXP is divided by 2 for out of party characters - it'll probably be something like:
SHR REG,1
or
SAR REG,1
where SHR (
logical shift right) is used to do an unsigned division and SAR (
shift arithmetic right) is used to do a signed division. Shift instructions are commonly used to multiply/divide quickly by powers of 2 when using integers.
REG is an x86 32-bit register e.g. EAX, EBX, ECX...
Those instructions would basically do REG = REG/2
and then you would change it to:
XOR REG,REG
XORing (
exclusive or) a register with itself is a compact way of setting a register to 0 (it's used instead of MOV REG,0) and it fits into the same 2 bytes as the shift instruction.
Anyway, that's roughly how I'd go about it, I'll take a look tonight if I get some free time.