If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

User:Trash Bandatcoot/Mario vs. Donkey Kong

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of User:Trash Bandatcoot.

(This page documents research done by Lunar. Most content featured here mentions the final US build.)

Prerelease doodoo

E3 2002

At the start of E3 2002, Nintendo revealed a game titled Donkey Kong Plus - stylised as Donkey Kong + on Nintendo's official website[1]. According to the game's fact sheet [2], the game would've been a remake of Donkey Kong '94, featuring over 100 levels, new moves for Mario, and new to this remake; a level editor with GameCube Link Cable functionality, with players being able to save levels to the Memory Card, transfer them to the Game Boy Advance and trade them with friends. No other info was shared, with the game being slated for a Q1 2003 release date as a Game Boy Advance game.

Two levels based on those from Donkey Kong '94 are known to have been playable at the E3 showfloor, with one monitor showing the game, and another demonstrating the Link Cable showing levels on the Game Boy Advance. The level editor was very simple. Pressing Up/Down on the C-Stick would've allowed the player to toggle between building materials, characters, special items and three required items, those being Mario, a key and a door to the exit. The A button allowed you to place the item, B to remove an item and Z to toggle a grid on the screen. Pressing Start/Pause would allow you to play your edited level either on the GameCube or the Game Boy Advance. During gameplay, the player gets to see what level they're in, the time represented by a counter and bar on the side, a score, lives and three collectibles that need to be collected. After completing the level, a screen would appear reading "GREAT! YOU WIN!" using updated artwork of Donkey Kong from Donkey Kong '94's title screen. A few graphics based on this early design for Mario are still present in the final game.

After E3, the game wasn't heard from again. Near the beginning of 2003, Nintendo updated their official website reading that no release date has been announced. Between E3 2002 and E3 2003, the game would be reworked into Mario vs. Donkey Kong as a standalone title for the Game Boy Advance. The only known screenshots of the game originate from IGN[3], with the only known footage being a 15 second snippit from Planet GameCube's E3 2002 "Shine Get" DVD[4].

E3 2003

Mario vs. Donkey Kong, then known as Mario and Donkey Kong, was first revealed when Nintendo sent out press kits to gaming news organisations. Nintendo didn't share any other details however[6], other than twelve screenshots.

A preview icon found on the E3 2003 press kit, featuring an early logo and title for the game.

General Differences

All that stuff goes here...

E3 2003 Showfloor

Reported by IGN[7] and David Dayton[8], the game was playable from a single Game Boy Advance on the E3 showfloor. No pictures or videos seem to exist.

According to IGN, the game was already close to being finished, aside from the lack of an interface before entering a level. Many of the things described in the article show up in the final game, though the plot synopsis is different.

"The game features a storyline where Mario opens up a toy factory manufacturing Mini Mario wind-up dolls. Donkey Kong feels left out since Mario never made a DK doll, so the monkey has infiltrated the factory and stolen many of the toys before hopping off deeper into the factory. It's up to Mario to traverse the hazards of his factory to grab the lost toys and head to the next part of the building."

In the final game, Donkey Kong is upset that all the Mini Mario's are sold out, and ends up robbing the Mario Toy Factory - which was already opened without an introduction - before Mario takes notice and goes after him. The idea for Donkey Kong to travel deeper into the factory was reused for World+.

E3 2004

Hmmm...
To do:
Check screenshots. E3 2004 b-roll appears to slightly predate the kiosk demo in terms of scores you get from collecting presents.

Unused Levels

Hmmm...
To do:
annoy the hell out of Lunar until I get to know how to load these levels into the game.

World 1

Early Boss #1

Offset: 0xB198F8

Early Boss #2

Offset: 0xB17390

World 3

Unknown Level #1

Offset: 0xB12ACC

Unknown Level #2

Offset: 0xB12EFC

Note: Level should be vertical but is denoted to be horizontal in its header.

Unknown Level #3

Offset: 0xB13344

Note: Level unbeatable due to the chain being too short. Possible leftover from Donkey Kong Plus with Mario's 16x16 size.

World 4

Unknown Level

Offset: 0xB15200

Early Boss

Offset: 0xB154C8

World 5

World 6 Level #1

Offset: 0xB18A08

World 6 Level #2

Offset: 0xB18D94

Card-e+

Early Hot Feet

Offset: 0x12684

Early Boo in a Box

Offset: 0xB145DC

Early The Thwamplet

Offset: 0xB149BC

Early A Tricky Candle

Offset: 0xB14EC8

Early Key to the Key

Offset: 0xB16004

Early Danger Flowers

Offset: 0xB1664C

Early Climb and Fall

Offset: 0xB183F4 & 0xB19368

Early Hitasura Kawase!

Offset: 0xB16BD0

Misc

B section of some level in some unknown world

Offset: 0xB170C8

Unused Objects / Graphics

Hmmm...
To do:
  • 5CBD34 - DK logo
  • 5CD41C - DK logo outline
  • 62CCF8 - STOP switch
  • 2F6AE0 - early Mario key turn animation (palette 4 might be the correct palette unless it's a weird coincidence?)
  • 2A983C - early plant enemy graphics, circa E3 2003
  • 28DD6C / 28E6B4 - circular / squares n stuff (not sure if this is unused)
  • ?????? - tilesets that have early world assets, such as coins

All offsets apply to the US retail game.

Placeholder DK Mech Hand

Offset: 0x1CFAC0
Format: 8bpp

GBA-MKvsDK-EarlyDKBossMechHand-1.png

A crude placeholder graphic of DK's mech hand, found among graphics of the final boss. Unfortunately, no palette seems to exist anymore.

Placeholder Cage

Offset: 0x12E3A4
Format: 4bpp

GBA-MvsDK-Cage Open-1.png GBA-MvsDK-Cage Closed-1.png

Placeholder graphics for a cage, found among other general graphics.

Early Mario Graphics

These few graphics are scattered across the game, taking on a more standard sprite approach for the game's art style instead of pre-rendered graphics. The design for Mario seen here closely resembles that from what was seen in Donkey Kong Plus.

Offset: 0x457E40
Format: 8bpp

GBA-MvsDK-EarlyMario Ball Animated-1.gif

GBA-MvsDK-EarlyMario Ball-1.png GBA-MvsDK-EarlyMario Ball-2.png GBA-MvsDK-EarlyMario Ball-3.png GBA-MvsDK-EarlyMario Ball-4.png

Mario stuck in a ball, found among other graphics for Mini Mario.

Offset: 0x5A10B0
Format: 4bpp

GBA-MvsDK-EarlyMario Move Animated-1.gif

GBA-MKvsDK-EarlyMario Move-1.png GBA-MKvsDK-EarlyMario Move-2.png

Two frames of Mario possibly grabbing something.

Offset: 0x5B18AC
Format: 4bpp

GBA-MKvsDK-EarlyMario Backflip-1.png

A single frame of Mario performing a backflip. When compared to the backflip animation from Donkey Kong (Game Boy), Mario's moves closely match that of the 6th backflip graphic.

Mario & Donkey Kong Running

Offset: 0x2F9184
Format: 4bpp

A full nine frame animation of Donkey Kong running away. Not only is this animation considerably smaller than any other animation with him, but he's also running away without his sack. No palette seems to exist unfortunately.

GBA-MvsDK-DK Running Animated-1.gif

GBA-MvsDK-DK Running-1.png GBA-MvsDK-DK Running-2.png GBA-MvsDK-DK Running-3.png GBA-MvsDK-DK Running-4.png GBA-MvsDK-DK Running-5.png GBA-MvsDK-DK Running-6.png GBA-MvsDK-DK Running-7.png GBA-MvsDK-DK Running-8.png GBA-MvsDK-DK Running-9.png

Offset: 0x2F9E54
Format: 4bpp

A similar twelve frame animation for Mario exists as well, also in a smaller format and lacking a proper palette.

GBA-MvsDK-Mario Running Animated-1.gif

GBA-MvsDK-Mario Running-1.png GBA-MvsDK-Mario Running-2.png GBA-MvsDK-Mario Running-3.png GBA-MvsDK-Mario Running-4.png GBA-MvsDK-Mario Running-5.png GBA-MvsDK-Mario Running-6.png GBA-MvsDK-Mario Running-7.png GBA-MvsDK-Mario Running-8.png GBA-MvsDK-Mario Running-9.png GBA-MvsDK-Mario Running-10.png GBA-MvsDK-Mario Running-11.png GBA-MvsDK-Mario Running-12.png

Pause Menu Text

A few graphics from an earlier pause menu are leftover. The pause menu is in the same style, but the text is different.

Offset: 0x2EDE24 & 0x2EF194
Format: 4bpp

GBA-MvsDK-Pause Restart-1.png GBA-MvsDK-Pause Restart-2.png GBA-MvsDK-Pause Restart-3.png

A restart option, which was retitled to "RETRY". This graphic is split up into two parts.

Offset: 0x2EDCF8 & 0x2EEF44
Format: 4bpp

GBA-MvsDK-Pause Quit-1.png GBA-MvsDK-Pause Quit-2.png GBA-MvsDK-Pause Quit-3.png

A quit option, which was retitled to "EXIT LEVEL".

Offset: 0x2ED8C8 & 0x2EE704
Format: 4bpp

GBA-MvsDK-Pause Edit-1.png GBA-MvsDK-Pause Edit-2.png GBA-MvsDK-Pause Edit-3.png

The most interesting however, is an edit option, leftover from the scrapped level editor.

Glass Ball Slot

Offset: 0x514094
Format: 4bpp

GBA-MvsDK-Crystal Ball-1.png

Much like keys, glass balls containing Mini Mario's were also intended to have a visible slot when they were picked up. Although the palette is no longer present, screenshots from E3 2003 do show what the graphic looked like in-game.

Early Boss Health Bar

Hmmm...
To do:
MvsDK graphic exists here too - duplicate?

Offset: 0x2E911C
Format: 8bpp

GBA-MvsDK-EarlyBossBar Mario-1.png GBA-MvsDK-EarlyBossBar DK-1.png GBA-MvsDK-EarlyBossBar Loss-1.png

An early health bar for the boss fights found among Mini Mario and barrel warnings, using a simple bar rather than displaying Mini Mario and Donkey Kong heads.

Unused Functionality

"Main" Level Select Button

Hmmm...
To do:
basically the menu button is selectable and functions when pressing A, but some palettes may be fucked

Early Opening Cutscene

A bunch of assets and code for an alternate, early opening cutscene when starting a new save file exist in the game's data. This opening cutscene is more dummied down, featuring only a specific palette for each slide and dialog for all characters. Some parts of this cutscene were overwritten, including a couple of sound effects that were replaced with those from the opening cutscene, and a proper palette for the text, making the text hard to read.

To view this cutscene, change the first four values at offset 0x2D4C4 to 0CE9B208 in the game's US retail build. The cutscene will play when starting a new save file.

The dialog is as follows:

Character Text
DK GRRRROOOOOOWLLLL!!
Gimmie all your toys!!
Toad WAAAAAAAAAH!
Mario Whats going on?
Toad Donkey Kong stole
all the mini marios!!
Mario I will get them back!!
Here we go!!

Notes

RAM Values

Level Editor

030008C8 (4 bytes) - Level Editor Cursor X Position
030008CC (4 bytes) - Level Editor Cursor Y Position

03000900 (4 bytes) - Level Editor Object Class 0 current object ID
03000904 (4 bytes) - Level Editor Object Class 1 current object ID
03000908 (4 bytes) - Level Editor Object Class 2 current object ID
0300090C (4 bytes) - Level Editor Object Class 3 current object ID
03000910 (4 bytes) - Level Editor Object Class 4 current object ID
03000914 (4 bytes) - Level Editor Object Class 5 current object ID
03000918 (4 bytes) - Level Editor Object Class 6 current object ID
0300091C (4 bytes) - Level Editor Object Class 7 current object ID
03000920 (4 bytes) - Level Editor Object Class 8 current object ID
03000924 (4 bytes) - ???
03000928 (4 bytes) - Level Editor Object Class ID

Level Information

0300170C (2 bytes) - Currently playing level height in pixels
03001720 (2 bytes) - Currently playing level width in pixels
03000B54 (2 bytes) - Current level timer in frames

Level Data

Taken from https://github.com/LuigiBlood/eReaderTools/wiki/Mario-VS-Donkey-Kong-eWorld-Level-Data#level-data just modified to be the location in RAM.

02000000 (2 bytes) - Background horizontal shift in pixels
02000002 (2 bytes) - Background vertical shift in pixels
02000004 (2 bytes) - Level width in pixels
02000006 (2 bytes) - Level height in pixels
02000008 (2 bytes) - ??? (Lunar's note: seems to always copy the level height)
0200000A (2 bytes) - ???
0200000C (???? bytes) - Object data

Object Data Format

Taken from https://github.com/LuigiBlood/eReaderTools/wiki/Mario-VS-Donkey-Kong-eWorld-Level-Data#object-data.

OOOO XX YY
OOOO = Object ID
XX = X position
YY = Y position

Camera

03001710 (2 bytes) - Camera vertical offset in pixels
03001724 (2 bytes) - Sprite horizontal offset in pixels

03001730 (2 bytes) - Background layer 0 horizontal offset in pixels
03001732 (2 bytes) - Background layer 0 vertical offset in pixels
03001734 (2 bytes) - Background layer 1 horizontal offset in pixels
03001736 (2 bytes) - Background layer 1 vertical offset in pixels
03001738 (2 bytes) - Background layer 2 horizontal offset in pixels
0300173A (2 bytes) - Background layer 2 vertical offset in pixels
0300173C (2 bytes) - Background layer 3 horizontal offset in pixels
0300173C (2 bytes) - Background layer 3 vertical offset in pixels

Player / Mario

03003514 (4 bytes) - Mario's X position within the level (byte 1 is sub pixel, bytes 2-4 are pixel position)
03003518 (4 bytes) - Mario's Y position within the level (byte 1 is sub pixel, bytes 2-4 are pixel position)
0300351C (4 bytes) - Mirrors 03003514
03003520 (4 bytes) - Mirrors 03003518
03001984 (2 bytes) - Mario idle timer (goes up by 1 every frame mario is idle until it reaches 7FFF and then loops back to 0)
03003548 (4 bytes) - Mario Animation timer
03003570 - Mirrors mario's vertical pixel position
03003571 - Mario sprite properties (0x20 is normal, 0x24 is transparent, resets back to 20 upon moving)
03003572 - Mirrors mario's horizontal pixel position 
03003573 - Mario Facing direction (0x80 is facing left, 0x90 is facing right, unintended ones following here 0xA0 is upside down facing left, 0xB0 is upside down facing right, resets to normal when you move)
03003524 (2 bytes) - Marios horizontal momentum
03003526 (2 bytes) - Mario's vertical momentum

Misc

030009C4 - Current game mode

030009E8 - Level timer on/off flag

030009C0 - Seems to always contain a copy of 030009C4, changing it results in some weird results, changing it to anything while in the pre-level tutorial demo or on the title screen demo allows you to play on the level the demo is

03000020 - Seems to always contain a copy of 030009C4, changing it results in the mode getting set to 1F which causes the screen to cut to black and return to the previous mode (Note: setting it to 0A or 0B crash, also worth noting that 0A is known to crash and 0B being the level edit mode)

03000080 - Level select cursor, cannot be changed via memory editing
03000081 - Current level select UI world cursor position
03000082 - Seems to be the level select UI mode (00, is selecting normal levels, 01 is selecting normal worlds, 02 is selecting plus levels, 03 is selecting plus worlds, 04 and 05 have unintended behavior where 04 leads you to non plus final boss and 05 leads you to world plus final boss)
03000083 - Seems to change while scrolling the different worlds
0300010C - Current world (unknown what this is for, it gets set to the current world ID on level start, changing it doesnt seem to do much at all)
03000B58 - Changing this on the tutorial screen changes the world you get sent to when you exit the tutorial (changing it to a 01 after selecting 1-1 will send you to 2-1)
03000B74 - Changing this on the tutorial screen changes the level you get sent to when you exit the tutorial (changing it to a 02 after selecting any level will bring you to X-2 X being whatever value 03000B58 currently is)
03000BA2 - Mirrors 0300010C
03000BD4 - Currently selected world in the level select screen, changing it changes the UI to that of the world ID
03000BD8 - Currently selected level in the level select screen (goes by increments of +2 -- the inbetweens are the B segments of the level)
03000DD0 - Mirrors 0300010C
03001BD8 - Mirrors 0300010C

03004C58 - Currently selected option menu option
03004C64 - Audio options music number (Note: changing this does nothing to the menu)
03004C66 - Audio options fx number (Note: changing this does nothing to the menu)
03004C68 - Currently selected visual options movie
03004C6A - Selected visual options screen mode (Note: changing this does nothing to the menu)
03004C6C - Currently selected audio options mono/stereo (Note: changing this does nothing to the menu)

Game Modes

Offsets:

  • 030009B4 (demo)
  • 030009C4 (USA & Japanese retail)
  • 03000984 (Europe retail)
00 - game boot up
01 - Credits? (sends the game to mode 1E with the data to load the credits scenes)
02 - Title screen demo
03 - main menu
04 - options menu
05 - tutorial demo
06 - tutorial demo reset?
07 - title screen
08 - world/level select screen
09 - expert levels
0A - crash
0B - level editor
0C - (sets the mode to 0D)
0D - in level
0E - restart button in the pause screen
0F - mutes currently playing song and returns to mode 0D
10 - pause screen
11 - help/tips screen
12 - crash
13 - same as 0F
14 - boss clear screen
15 - level results 
16 - all presents minigame (stop the arrow)
17 - all presents minigame (save the present)
18 - e World screen
19 - e World screen again, when set outside of the base e world screen the graphics get messed up
1A - e card scan screen (sets mode to 19 when pressing B)
1B - same as 1A
1C - e world debug menu
1D - fade in the e world screen
1E - Movie player
1F - Fade in/out transition used almost everywhere
20 - World start screen
21 - Level viewer accessed by pressing L+R anywhere in a level
22 - game init

References