DOL-Translations / donkey-konga-3

Donkey Konga 3
8 stars 1 forks source link

Convert NTSC-J > NTSC-U #3

Open radioshadow opened 1 month ago

radioshadow commented 1 month ago

Here's a much better way to make the game save perfectly fine on a NTSC-U GameCube/Wii (PAL GameCube/Wii have no issues saving NTSC-U games).

In the "ISO.hdr" file, change the following at hex location 45B: USA = 01

The region is now USA. This allows the game to save on a USA/EU Memory Card (Nintendont and Dolphin will treat this as a NTSC-U game).

Since this is based on the DK2 US version, that means there is a language value that is stored in the RAM (80191EF4). There is still some code that checks this value. In the "Start.dol"file, change the following at hex location: 9EA5B English (US) = 07

The game will now be set to English (US). There is code that checks which Save File date format to use. Now it will use: M/D/Y DK3 Save

Another advantage is the use of "_us" folder. In DK2, if the required file is in that folder, it uses it first, otherwise, use the one from the main direct. Sadly, it only works with "Resource" files, but I will look into that.

Finally, we need to make one more change, otherwise the game won't save. In the "Start.dol"file, change the following at hex location: 840BB

Language/Region > Japanese & Japan = 06 Language/Region > Japanese & USA = 07 Language/Region > English & USA = 06 Language/Region > English & Japan = 07

In our case, set it to: 06

Now you don't have to change the Game ID (you may want to kept it the same, since you could write the Japan save to a US/EU Memory Card, and the game will read/save to it fine), but if you do, MAKE SURE THEY MATCH IN THE FOLLOWING LOCATIONS: ISO.hdr = 0 start.dol = 1855BC

Otherwise, Namco's stupid check will pop in, and you won't be able to save. If you want to change it to "GY3E", then that's how you do it.

NewGBAXL commented 1 month ago

Currently, the region is being changed in ISO.hdr, both titleid and NTSC-U at 0x45B; and the separate location in the dol; and the titleids of the other DK games as well. The other methods are not used, however the save region check incorrect region is manually skipped in all instances. It might be a good idea to clean that up.. The _us folder isn't super important to me, I might manually patch that out if enabling the US region as described

Check out Main.asm Ln 56-57 & System.asm Ln 5-15. Ram addrs are not modified, rather the binary itself, so the corresponding hex were just searched for in a hex editor and dumped like so.

If you want to add any other cheats or changes feel free to use System.asm and add some lines after Ln 15 with a header describing what it does

I will review this next month, or feel free to submit a pr