well, you need an emulator with debugging options, e.g. geigers.
It should have a breakpoint option where simply enter the ram address you want to observe.
(see picture in attachment)
this case is "easy" since we know what value is used from which address
hint: cheat lists are useful, at least the kind that modifies 7Exxxx or 7Fxxxx values
try samurai goroh's from
http://erick.guillen.com.mx/Codes/SNES%20Final%20Fantasy%20V.txtin this case we want a read access, since the info is simply read from the address 7E2020.
write is for cases where you want to watch when a value is changed.
exec is for asm code that is actually executed.
the game will run until one of the breakpoints is triggered; hit "step into" to forward command by command in the code.
we expect here a case where the value is checked for the "learning" flag in 7E2020, $10 in this case.
so step a bit further in;
I got a few
29 80 AND #$80
29 40 AND #$40
29 20 AND #$20
those are not the flags we look for, so continue with run, we need a new read call.
this one looks promising
$C2/4C87 B9 20 20 LDA $2020,y[$7E:2020] A:0000 X:0000 Y:0000 P:envMxdiZc
$C2/4C8A 29 10 AND #$10 A:0077 X:0000 Y:0000 P:envMxdizc
$C2/4C8C F0 DF BEQ $DF [$4C6D] A:0010 X:0000 Y:0000 P:envMxdizcchange $C2/4C87 to A9 10 EA, that should do the trick.
with that every job ever should have learning = true.
A9 10 is LDA #$10
EA is <do nothing>, we have one byte left over here since we replace the 3 byte B9 20 20 LDA $2020,y with just two A9 10.
specifically we are in 8 bit mode here, as the capital M to the right of the line tells us.
if it was a lower case m we'd be in 16 bit mode, so we'd have to do A9 10 00 is LDA #$0010, load a 16 bit number.
as a reference sheet what bytes are what command I usually use
https://wiki.superfamicom.org/snes/show/65816+ReferenceSorry, that explanation is not very complete, I'm not good at teaching.