As you probably know a few of us have been collaborating to fix the US Version's AP. and bring a Fix for the R4 as well as other cards. I've decided we should start a new thread and update our shared information as we go. I've heard a lot of people asking why we can't just use the Japanese AP fix on the US version or do a text swap given they're essentially the same game. Well the answer is because the Hex code is different for both, Specifically in the overlay0000.bin where the Japanese Patch applies changes. Anyway, We've hit a bit of a wall in our search and would like to ask those with specific knowledge in the community for help. Here's what we've determined so far: (Desmume bypasses the AP for whatever reason, We'd like to know the details where possible) Through using Desmume's Debugger and the US version of SMT we noticed an entry that kept showing up when entering the Save Menu. Seen here This entry, found at 021781c4 in the Arm9 Memory monitor and all the lines below it start as zeroes when the emulation is running. And change when the save/Load Menu is entered, and again when entering Antilia, This leads us to believe that the same line may be responsible for the random encounter issue as well. Now, that same line can also be found in the ROM file at 000c45a4 Or 000009a4 in overlay_0000.bin Our attempts to modify it have all been greeted with a black screen. The Japanese release only needed two changed values, Their location in the overlay was on line 00000710 and 00000711 which changed: F0> 30 7B> 77 Comparatively the US and Japan Overlays are completely different. and there doesn't seem much of a pattern to follow. What I'm interested in knowing is how the values for the Japanese patch were found. As guessing isn't going to get us anywhere if we can't determine what the hex is being used for. I'm currently a novice as far as Rom hacking but I'm learning through experience. All insight is welcome and appreciated. ------------------------------------------------------------------------------------- Original Line 45a0 In SMT ROM Hex: 1c d1 5d e3 dd 1b 02 98 e5 01 13 00 bb ac 5c 00 Line 021781c4 In Arm9 Memory(Entering Menu)[Stays Afterward] 9C 6d 5d E3 BE 8E 98 E5 01 13 00 BB A3 0A 5D E1 Line 021781c4 In Arm9 Memory(After/During Saving)[Stays Afterward] E8 9B FB EB 05 00 A0 E1 B1 10 D9 E5 07 20 A0 E3 These values will overwrite each other and stay after leaving the menu. -------------------------------------------------------------------------------------------
Hmm. What you guys might need to look at is not those addresses, but the address that is responsible for these read/write routines. To find out how these protections work, you could take a look at extinfo.dat of DSTT, but you'd have to know ASM. Really, to find out the problem you'd even have to be able to produce ASM coding of your own.
I posted this in the other thread, but you should also go to GBAtemp, maybe you could also get some help there.