v1.50 is out.
What's new (it's in the archive's .txt file, but I also post it here in case some people don't know how to open a .txt file...) :
Update in version 1.50 :
!!! Don't try to unpatch a v1.50 patched rom using an older TTRomPatcher !!!
(means delete the old versions, and only keep the v1.50 one, to avoir troubles)
- changed the patch applied to the ROM. Now the patch kinda waits for the
Trainer Toolkit's hardware to be ready before applying itself. I also changed
the location of the data to compress in ARM7, to avoid any conflict with the
devices' firmwares' patches. Finally, I try to force the EXMEMCNT value to 0xE880.
These changes allow the TTRomPatcher's patches to work on almost all devices/firmwares.
However, for some of them, you'll get white screens. This applies to CycloDS, EZVi,
AKAIO, AK2i, and Yasu. To make the TT work for these devices/firmwares, you need to
remove the Trainer Toolkit's hardware before launching the game, and insert it when
you have two white screens. It might not work for all games, and might create a desync
between ARM7 and ARM9 (sound problem)). To fix the compatibility for these devices,
their firmware should be updated to set EXMEMCNT (0x04000204) to 0xE880 (for AKAIO and
AKA2i), and all of them must also check if the Trainer Toolkit is inserted (this check
is simple : str a value at 0x08800000, ldr the value from 0x08800000. If the value
readen is the same than the value written, that means the Trainer Toolkit is inserted
and no other GBA SLOT access should be made, else the Trainer Toolkit communication will
crash). Finally, the CycloDS hangs when starting a game (even a non-patched one) when
the Trainer Toolkit is inserted, so there could be an infinite loop somewhere in the
firmware that should be fixed. Some other combinaison of games/firmwares could give
white screens (like Tales of Innocence on the R4, because the firmware
patches the game to force EXMEMCNT to 0xE800, disabling ARM7 access to the GBA Slot).
- added a "Action Replay" option. If you have a file with a code handler in ARM
and some codes, name it AR.bin and put it inside the TTRomPatcher's folder. That
way, when a game will be launched, the TTRomPatcher's patches will write the code
handler in the RAM and will create a hook for it (using ARM7). The code handler
and the codes must be in the same file. It allows you to apply cheats even if your
device(/emu) doesn't support them (properly).
- made that when the rom's header is changed (when using the "copy to rom"
option) some unused byte in the header are changed so the crc16 (used for
the CBDS ID CODE) and the crc32 (used for the ARDS ID CODE) will still be the
same. This feature adds a small delay when patching a rom. However, with this v1.50
version, the "compress ARM7" should always be used (switch to "copy to rom" only if
"compress ARM7" doesn't work - btw, the CycloDS doesn't support "copy to rom" at all).