The current URL is datacrystal.tcrf.net.
Donkey Kong Land 2/RAM map: Difference between revisions
Blaziken257 (talk | contribs) No edit summary |
m (Xkeeper moved page Donkey Kong Land 2:RAM map to Donkey Kong Land 2/RAM map: normalize subpages and titles) |
||
(15 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{rammap|game=Donkey Kong Land 2}} | {{rammap|game=Donkey Kong Land 2}} | ||
* <tt> | * <tt>DED3</tt> = Bananas | ||
* <tt> | * <tt>DED4</tt> = Lives | ||
* <tt> | * <tt>DF00</tt> = Current Character | ||
** <tt>00</tt> | ** <tt>00</tt> = Diddy Kong | ||
** <tt>01</tt> | ** <tt>01</tt> = Dixie Kong | ||
** <tt>02</tt> | ** <tt>02</tt> = Rambi | ||
** <tt>03</tt> | ** <tt>03</tt> = Squawks | ||
** <tt>04</tt> | ** <tt>04</tt> = Enguarde | ||
** <tt>05</tt> | ** <tt>05</tt> = Squitter | ||
** <tt>06</tt> | ** <tt>06</tt> = Rattly | ||
** <tt>07</tt> | ** <tt>07</tt> = Roller Coaster | ||
* <tt> | * <tt>DF2D</tt> = Traction | ||
** <tt>03</tt> | ** <tt>03</tt> = Non-ice levels | ||
** <tt>34</tt> | ** <tt>34</tt> = Ice levels | ||
* <tt>DE80-DE81</tt> = Horizontal scroll offset in level | |||
* <tt>DE82-DE83</tt> = Vertical scroll offset in level | |||
* <tt>DF10</tt> = Horizontal velocity | |||
* <tt>DF11</tt> = Vertical velocity | |||
* <tt>C5F7</tt> = Current stage type | |||
** <tt>00</tt> = Find the Token! | |||
** <tt>01</tt> = Collect the Stars! | |||
** <tt>02</tt> = Destroy them All! | |||
** <tt>03</tt> = Warp | |||
** <tt>FE</tt> = Regular stage (after exiting bonus stage) | |||
** <tt>FF</tt> = Regular stage (from world map screen) | |||
* <tt>C5F8</tt> = Bonus stage timer counter (remaining seconds) | |||
* <tt>C5F9</tt> = Bonus stage counter (remaining stars/Kremlings) | |||
* <tt>C5AA</tt> = Bonus/Warp Stage 1 | |||
* <tt>C5AB</tt> = Bonus/Warp Stage 2 | |||
* <tt>C5AC</tt> = Bonus/Warp Stage 3 (Always FF in this game, but used for warps in DKL3) | |||
* <tt>DAF7</tt> = Current music tempo | |||
* <tt>D100-D10A</tt> = Button presses for cheat codes | |||
* <tt>DEA1</tt> = Current buttons pressed (Down, Up, Left, Right, Start, Select, B, A) | |||
* <tt>DEA2</tt> = Most recent buttons pressed | |||
== Saved data == | |||
* <tt>A000-A04F</tt> = File 1 | |||
* <tt>A050-A0BF</tt> = File 2 | |||
* <tt>A0A0-A0EF</tt> = File 3 | |||
{| class="wikitable" | |||
|- | |||
! File 1 !! File 2 !! File 3 !! Description | |||
|- | |||
| <tt>A000-A001</tt> | |||
| <tt>A050-A051</tt> | |||
| <tt>A0A0-A0A1</tt> | |||
| 16-bit big endian checksum of <tt>4E</tt> bytes afterwards (e.g. <tt>A002-A04F</tt> for File 1) | |||
|- | |||
| <tt>A002</tt> | |||
| <tt>A052</tt> | |||
| <tt>A0A2</tt> | |||
| Current Kong (00=Diddy, 01=Dixie) | |||
|- | |||
| <tt>A003</tt> | |||
| <tt>A053</tt> | |||
| <tt>A0A3</tt> | |||
| Number of hits remaining | |||
|- | |||
| <tt>A004</tt> | |||
| <tt>A054</tt> | |||
| <tt>A0A4</tt> | |||
| Last world visited | |||
|- | |||
| <tt>A005</tt> | |||
| <tt>A055</tt> | |||
| <tt>A0A5</tt> | |||
| Last submap location visited (typically Kong Kollege)<br /><small>(Unused, because the game always starts you on the overworld map when loading a saved game.)</small> | |||
|- | |||
| <tt>A006-A008</tt> | |||
| <tt>A056-A058</tt> | |||
| <tt>A0A6-A0A8</tt> | |||
| Total time (hours, minutes, seconds) | |||
|- | |||
| <tt>A009</tt> | |||
| <tt>A059</tt> | |||
| <tt>A0A9</tt> | |||
| Banana Coins collected<br /><small>(This data is not used. Upon loading a save file, after the game reads the Banana Coin count and stores it into RAM, it is then reset to 0. It is unclear whether or not this is a bug.)</small> | |||
|- | |||
| <tt>A00A</tt> | |||
| <tt>A05A</tt> | |||
| <tt>A0AA</tt> | |||
| Kremkoins collected | |||
|- | |||
| <tt>A00B</tt> | |||
| <tt>A05B</tt> | |||
| <tt>A0AB</tt> | |||
| DK Coins collected | |||
|- | |||
| <tt>A00E-A014</tt> | |||
| <tt>A05E-A064</tt> | |||
| <tt>A0AE-A0B4</tt> | |||
| World data | |||
* Bit 7: Supposed to be used to indicate the world was finished with Diddy or Dixie. Due to a bug that skips a check to determine who beats a world, this is always 0 (Diddy). Changing this bit to 1 will display that Dixie finished a world. | |||
* Bit 6: 0 if missing at least one Kremkoin, 1 if all Kremkoins have been found | |||
* Bit 5: ??? | |||
* Bit 4: ??? | |||
* Bit 3: Saved at Kong Kollege at least once | |||
* Bit 2: Used Funky's Flights at least once | |||
* Bit 1: 0 if DK Coin is not collected, 1 if DK Coin is collected | |||
* Bit 0: 0 if not cleared; 1 if cleared | |||
|- | |||
| <tt>A015-A042</tt> | |||
| <tt>A065-A092</tt> | |||
| <tt>A0B5-A0E2</tt> | |||
| Level data | |||
* Bit 7: 0 if cleared with Diddy the first time, 1 if cleared with Dixie for the first time | |||
* Bit 6: 0 if missing at least one Kremkoin, 1 if all Kremkoins have been found | |||
* Bit 5: Unused? | |||
* Bit 4: 0 if Bonus Coin #2 is missing, 1 if Bonus Coin #2 is collected | |||
* Bit 3: 0 if Bonus Coin #1 is missing, 1 if Bonus Coin #1 is collected | |||
* Bit 2: Unused? | |||
* Bit 1: 0 if DK Coin is not collected, 1 if DK Coin is collected | |||
* Bit 0: 0 if not cleared, 1 if cleared | |||
|- | |||
| <tt>A100-A14F</tt><br /><tt>A200-A24F</tt> | |||
| <tt>A150-A19F</tt><br /><tt>A250-A29F</tt> | |||
| <tt>A1A0-A1EF</tt><br /><tt>A2A0-A2EF</tt> | |||
| Backup copies of given file, used if previous checksum fails | |||
|} | |||
==== Checksum ==== | |||
For each <tt>50</tt>-byte block, a 16-bit, big endian checksum is stored in the first two bytes. This is a sum of each 8-bit value in the rest of the <tt>4E</tt> bytes. If the checksum fails, the checksum in the file's first backup copy is checked. If this also fails, the checksum in the file's second and final backup copy is checked. If they all fail, the file is erased. If any of them pass, the game always uses the data in the first block. This occurs even if the checksum failed in this block, but passed in either of the two backup blocks. This is a bug; the intended behavior is that the game would copy a valid backup block to the first block in this situation. Since the game always uses the data in the first block, this can cause glitches if the first block is corrupted, but the other two are intact. | |||
{{Internal Data|game=Donkey Kong Land 2}} |
Latest revision as of 02:41, 24 January 2024
The following article is a RAM map for Donkey Kong Land 2.
- DED3 = Bananas
- DED4 = Lives
- DF00 = Current Character
- 00 = Diddy Kong
- 01 = Dixie Kong
- 02 = Rambi
- 03 = Squawks
- 04 = Enguarde
- 05 = Squitter
- 06 = Rattly
- 07 = Roller Coaster
- DF2D = Traction
- 03 = Non-ice levels
- 34 = Ice levels
- DE80-DE81 = Horizontal scroll offset in level
- DE82-DE83 = Vertical scroll offset in level
- DF10 = Horizontal velocity
- DF11 = Vertical velocity
- C5F7 = Current stage type
- 00 = Find the Token!
- 01 = Collect the Stars!
- 02 = Destroy them All!
- 03 = Warp
- FE = Regular stage (after exiting bonus stage)
- FF = Regular stage (from world map screen)
- C5F8 = Bonus stage timer counter (remaining seconds)
- C5F9 = Bonus stage counter (remaining stars/Kremlings)
- C5AA = Bonus/Warp Stage 1
- C5AB = Bonus/Warp Stage 2
- C5AC = Bonus/Warp Stage 3 (Always FF in this game, but used for warps in DKL3)
- DAF7 = Current music tempo
- D100-D10A = Button presses for cheat codes
- DEA1 = Current buttons pressed (Down, Up, Left, Right, Start, Select, B, A)
- DEA2 = Most recent buttons pressed
Saved data
- A000-A04F = File 1
- A050-A0BF = File 2
- A0A0-A0EF = File 3
File 1 | File 2 | File 3 | Description |
---|---|---|---|
A000-A001 | A050-A051 | A0A0-A0A1 | 16-bit big endian checksum of 4E bytes afterwards (e.g. A002-A04F for File 1) |
A002 | A052 | A0A2 | Current Kong (00=Diddy, 01=Dixie) |
A003 | A053 | A0A3 | Number of hits remaining |
A004 | A054 | A0A4 | Last world visited |
A005 | A055 | A0A5 | Last submap location visited (typically Kong Kollege) (Unused, because the game always starts you on the overworld map when loading a saved game.) |
A006-A008 | A056-A058 | A0A6-A0A8 | Total time (hours, minutes, seconds) |
A009 | A059 | A0A9 | Banana Coins collected (This data is not used. Upon loading a save file, after the game reads the Banana Coin count and stores it into RAM, it is then reset to 0. It is unclear whether or not this is a bug.) |
A00A | A05A | A0AA | Kremkoins collected |
A00B | A05B | A0AB | DK Coins collected |
A00E-A014 | A05E-A064 | A0AE-A0B4 | World data
|
A015-A042 | A065-A092 | A0B5-A0E2 | Level data
|
A100-A14F A200-A24F |
A150-A19F A250-A29F |
A1A0-A1EF A2A0-A2EF |
Backup copies of given file, used if previous checksum fails |
Checksum
For each 50-byte block, a 16-bit, big endian checksum is stored in the first two bytes. This is a sum of each 8-bit value in the rest of the 4E bytes. If the checksum fails, the checksum in the file's first backup copy is checked. If this also fails, the checksum in the file's second and final backup copy is checked. If they all fail, the file is erased. If any of them pass, the game always uses the data in the first block. This occurs even if the checksum failed in this block, but passed in either of the two backup blocks. This is a bug; the intended behavior is that the game would copy a valid backup block to the first block in this situation. Since the game always uses the data in the first block, this can cause glitches if the first block is corrupted, but the other two are intact.
Internal Data for Donkey Kong Land 2
| |
---|---|