Donkey Kong Country 3 bowling ball glitch

Feel free to discuss anything gaming related.

Moderator: General Mods

Post Reply
blargg
Regular
Posts: 327
Joined: Thu Jun 30, 2005 1:54 pm
Location: USA
Contact:

Donkey Kong Country 3 bowling ball glitch

Post by blargg »

In my regular DKC marathon I was unable to get Bazuka (in Mekanos) the "ammunition" and whatever that unlocks, thus preventing the found-all-items ending. I found online that there's a rare glitch earlier in the game when Blue (in Cotton-Top Cove) gives you the bowling ball, which prevents giving Bazuka whatever he needs. Almost none of the FAQs mention this glitch, so it was hard to track down. This glitch occurs if you leave Blue's house immediately after giving him another item, when he would be giving you the bowling ball. Of course I remembered this occurring earlier, and wondering what the hell had happened (it looked like he threw something at my characters as I left).

I took the opportunity to figure out how to modify the battery RAM to give me the bowling ball back, as I should have had. After a few hours (nobody else seems to have decoded the checksum and check-XOR that you must fix when modifying the data), I came up with a patch. In case one wants to hack saved games in any other way, there's 0x62 bytes of some other data before the games, then the three games, each 0x28A bytes long. The first four bytes are checking information, the rest (0x286 bytes) the data. There are two checking values, each 16 bits, based on all the data interpreted as 16-bit words. The first is the sum, the second the XOR. That's it.

Anyway, if this glitch occurred in a game and you're at the end and have NO items in your possession but haven't solved Bazuka's lack of materials, you can modify your battery RAM (.srm if you're using an emulator, otherwise you'll need a copier that can rewrite SRAM). Your saved game must be in the FIRST slot (copy it there if it's not).

+0063: add 40
+00A7: change from 00 to 20
+00AB: change from 00 to 20

All values in hex, +HHHH are the file offsets.
PHoNyMiKe
Retrosexual
Posts: 1011
Joined: Wed Jul 28, 2004 2:09 am
Location: Rapture

Post by PHoNyMiKe »

I have no idea what you're talking about with DKC and bowling balls, but I love .srm hacking and honor the fact of your snes reverse engineering skillz. give us a few lines of C, hell even the asm, and keep up the awesome work :)


oracle of ages: I was really trying to figure out the oracle of seasons checksum but got the rawmz mixed up, they're pry the same anyways :\

Code: Select all

ld   bc,02A7             0x247 * 2 bytes to count
ld   de,0000             clear the checksum
ldi  a,(hl)              load 1 byte from sram
add  a,e                 \ add lower byte of checksum to the byte from sram
ld   e,a                 / make lower byte of checksum the result
ldi  a,(hl)              get next byte from sram
adc  a,d                 \ add with carry the upper byte from checksum to the byte from sram
ld   d,a                 / make upper byte of checksum the result
dec  bc                  dec the counter
ld   a,b                 \
or   c                    | loop until 0
jr   nz,414A             /
[url=http://www.alexchiu.com/affiliates/clickthru.cgi?id=phonymike]ultimate immortality[/url]
[url=http://www.sloganizer.net/en/][img]http://www.sloganizer.net/en/image,zsnes,white,purple.png[/img][/url]
Post Reply