Hiei-YYH wrote:
probably the game is not always executing that particular subroutine.
anyway, changing ldrb r0,[r1,r0] by strb r0,[r1,r0] will cause the game to store 20h (see r0), shouldn't cause any problems anyway, just commenting.
For those kind of codes i suggest using a break on write, since this will not affect any enemies.
anyway, you're using no$gba or ideas debugger to set breakpoints?
yes, i believe it won't cause a problem if it is change to strb since r0 is use by one strb before a mov r0,#0xFF occurs and actually yes the subroutine executes only before the game starts and each time the player dies. I try both debugger and bpr gives me only three addresses, 0x02088D2C, 0x02185210 and 0x02193148 while bpw gives only two 0x02088C08 and 0x0219307A
only 0x0218520E, 0x02193146 and 0x02193078 uses ldrb/strb while other uses str/ldr, but i can only use 0x0218520C since the other two affects alot including the graphics. But it is odd because it still both clearly shows the base pointer in other two offset
in break on read

in break on write

my gf bought me yesterday a M3 DS real and yet both code in galaga works in M3 DS Real ..
using my code in M3 DS Real

so far it tried it on my supercard minisd, m3ds real, no$gba and it works even in ideas.