We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Notes:Donkey Kong Land III

From The Cutting Room Floor
Jump to navigation Jump to search

This page contains notes for the game Donkey Kong Land III.

Japanese version oddities

World map animations

World maps are animated in the English versions, but the animations were removed in the Japanese prototype, and remained removed in the final Japanese version.

Uncompressed graphics are present starting at ROM offset 7CF24 in all versions, even in the Japanese prototype and final, but naturally most of these graphics (except the static frames) are unused in the Japanese versions.

The subroutine to animate the maps resides in the following ROM offsets for each version:

  • English (prototype): 163F2-1661E
  • English (retail): 1641A-16701
  • Japanese (prototype): 1483E
  • Japanese (retail): 14910

The Japanese prototype and retail versions both contain a single ret instruction in the world animation subroutines, which removes world map animations.

Likely the reason why the prototype did this was because ROM bank 05 had other data added, including but not limited to Japanese translation credits, and possibly other things (hence the code being located in different ROM offsets). Despite that the ROM was doubled to 1 MB in the final Japanese version (to allow room for GBC support), with numerous empty banks that have more than enough room to add the world map animation subroutine back in, Rare seemingly forgot to do this in the final game.

However, there is no technical reason why this couldn't be added back in with the free ROM space in the Japanese final version -- the English patch adds the code back in and behaves the same way as the English retail versions, re-pointing the subroutine to ROM offset 94000-942E7. This ROM bank (25) was completely empty in the Japanese retail version.

Time Attack screen

In the English versions, in Time Attack mode, the player's last time is shown on the bottom of the screen. This was removed in the Japanese version.

The one remnant in the Japanese versions (both the prototype and final) is text that reads さいごのタイム. This is loaded into VRAM at offsets 9580 to 95EF. However, this is not displayed in the game at all.

Relevant ASM code is present in the following ROM offsets:

Time Attack ASM code

Data English (retail) Japanese (prototype) Japanese (retail)
Print level types (e.g. Stilt), Re-enter game, Last time on screen 15880-158A2 7D7D6-7D803 7D7D6-7D803
Load Time Attack records from SRAM, then print them 158A3-158DC 1609C-160D5 16053-1608C
Print most recent time on bottom-right of screen 158DD-15901 N/A N/A
Print ! on screen for cleared times 15902-15930 160D6-16104 1608D-160BB
Generate two-digit number (seconds, 1/100 seconds) 15931-15950 16105-16124 160BC-160DB
Load data in SRAM based on save file 15B94-15BA4 162DD-162ED 16294-162A4

As can be observed, the English version prints the player's most recent time after loading and printing Time Attack records from SRAM, and before indicating beaten times with "!". The Japanese prototype and final games skip the code that prints the player's most recent time -- after loading and printing Time Attack records from SRAM, the "!" marks (to indicate beaten times) immediately follows.

This code is in the same ROM bank as the world map animations, and seems to have the same issue with lack of space, so the code seemingly had to be removed in the Japanese prototype. In the final Japanese version, ROM bank 05 ended up having more than sufficient empty space for the code to be added back in as a result of the ROM size being doubled to 1 MB, but Rare again did not bother doing so.

Indeed, the English patch uses some of this empty space at the end of this ROM bank to restore the missing code from 17F00-17F2C.

Bear's animation

In the English version, Bear is animated, but not in the Japanese version.

However, all of Bear's graphics remain even in the Japanese version, uncompressed, from ROM offsets 1F420-1F97F.

Unlike the world map animations and the Time Attack screen, this is not an issue with ROM space. A possible reason why Bear lost his animation because in the Japanese prototype and final, the text scrolls one character at a time when talking to Wrinkly or Bear, and when this happens, all sprite animations slow down. This affects Dixie, Kiddy, Wrinkly, and Bear Coins, so perhaps Rare removed Bear's animation for this reason.

In all versions of Donkey Kong Land III, Bear's animation data starts at ROM offset E829.

In the English versions (including the prototype and all retail versions), Bear's animation data is like this:

81 45 82 00 00 84 08 03 07 0B 0F 13 0F 0B 07 83 68 30 84 03 00 04 08 0C 10 0C 08 04 83 68 3D 80 68 2E

In the Japanese versions (including the prototype and retail versions), Bear's animation data is like this:

81 45 82 00 00 00 95 84 08 03 07 0B 0F 13 0F 0B 07 83 68 32 84 03 00 04 08 0C 10 0C 08 04 83 68 3F 80 68 30

The difference in the Japanese versions is that 00 95 was added for some reason, and the two-byte big-endian pointer at the end was changed from 68 2E to 68 30 to account for the extra two bytes.

Therefore, to restore Bear's animation in any of the Japanese versions, the extra 00 95 should be removed, the pointer at the end should be reverted to 68 2E, and two bytes should be padded afterwards to avoid throwing off other sprite data afterwards.