If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!
This page is a good article.

Mario Kart: Double Dash!!

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Mario Kart: Double Dash!!

Developer: Nintendo EAD
Publisher: Nintendo
Platform: GameCube
Released in JP: November 7, 2003[1]
Released in US: November 17, 2003[1]
Released in EU: November 14, 2003[1]
Released in AU: November 14, 2003[2]
Released in KR: December 20, 2003[3]


CodeIcon.png This game has unused code.
SourceIcon.png This game has uncompiled source code.
DevTextIcon.png This game has hidden development-related text.
ObjectIcon.png This game has unused objects.
MinigameIcon.png This game has unused modes / minigames.
GraphicsIcon.png This game has unused graphics.
ModelsIcon.png This game has unused models.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.


ProtoIcon.png This game has a prototype article
PrereleaseIcon.png This game has a prerelease article
NotesIcon.png This game has a notes page

Adding two characters in one kart, double item boxes and two exclamation marks for its title, Mario Kart: Double Dash!! spices up the Mario Kart thrill by adding brand new courses, characters (marking Toadette's first appearance) and mechanics to keep you on your toes - most of which would be discarded and wouldn't return in new entries, at least not until Mario Kart 8 Deluxe.

Sub-Pages

Build Changes

Read about prototype versions of this game that have been released or dumped.
Prototype Info
Read about prerelease information and/or media for this game.
Prerelease Info
Miscellaneous tidbits that are interesting enough to point out here.
Notes
Gamecube-MKDD-DebugBuild-1.png
July 5th, 2004 Debug Build
A post-release build with debugging features.
Gamecube-MKDD-SubpageIcon Regional-1.png
Regional Differences
Personally, I'm a km/h type of guy.

Unused & Hidden Content

Gamecube-MKDD-Subpage ModesAndFeatures-1.png
Unused Modes & Features
Time to start driving in reverse.
Gamecube-MKDD-SubpageIcon DisabledObjects-1.png
Disabled Objects
Unseen, yet still intact.
Gamecube-MKDD-SubpageIcon UnusedGraphics-1.png
Unused Graphics
Banners and textures, burried deep within the game's files.
Gamecube-MKDD-SubpageIcon DebugContent-1.png
Debug Content
Some developer tools remained.

Stages

Unused Stage Files

The Course directory contains the main files for all of the race courses, battle stages and even the files for the Award Ceremony and the credits sequence, since those modes use game logic shared with races and battles. Each stage file has an L variant, for example there exists Wario.arc and WarioL.arc in the Course directory for Wario Colosseum.

The following rules are used to load the course files:

  • For offline race courses, the regular stage file is loaded when the game displays one viewport and the L stage file is intended for multiple viewports.
  • For offline battle stages, the regular stage file is always loaded.
  • For LAN mode, the L stage is always loaded for races and battles.
  • The Award Ceremony and the credits sequence load the regular stage file.

This leaves AwardL.arc and EndingL.arc unused, which are never explicitly loaded; the only difference in AwardL.arc is found in sea2_tex.bmd, which for its lower quality model doesn't have a noise texture, and Ending.arc has differences in car_item1.bmd and car_item1.btk, which is a lower quality model of the item box. Neither objects display any visual differences when loaded in-game.

Unused Mini Stages

The internal course folders for the battle stages are marked as Mini#.arc, where # is the battle stage number. These numbers range from 1 to 8, meaning that there were originally going to be 8 stages, but in the final game there's only 6. The 2 stage IDs that are not used in the final are Mini4 and Mini6, and are also referenced in the debug menu. The music track IDs further supports this, where the id ID Mini3 (Block City) is 0x36, the ID of Mini5 (Tilt-A-Kart) is 0x38, and the ID of Mini7 is 0x3A; thus, rendering 0x37 and 0x39 unused.

Unassigned Stage ID

Tilt-A-Kart has a quirk where its visual model is set 10,000 units higher compared to its collision data. The part of code that sets this value is in the function Course::reset and does the following (note the variable names are not official):

if (this.courseID == 0x38 || this.courseID == 0x12) {
	this.courseVisualModelX = 0.0f;
    	this.courseVisualModelY = 100000.0f;
    	this.courseVisualModelZ = 0.0f;
}

What makes this interesting is that the game checks for the ID 0x12 (18 in numbers) as well, which is not assigned to any stages in the final game. In the course selection debug menu, this corresponds to the deleted course Test 18. This function can be found at the following addresses:

USA Virtual Address Europe / Australia Virtual Address Japan Virtual Address
0x80178fb0 0x80177e54 0x80178fb0

Unused Stage Strings

ResMgr::getCrsArcName is the name of the used function that maps the course ID to the extensionless course filename. Since its implementation is identical across the kiosk demos, retail and debug builds, this means that there are string references to otherwise unused stages such as Mini4, Dekoboko and Reverse1. These are the same unused stages as seen in the course selection debug menu. This function can be found at the following addresses:

USA Virtual Address Europe / Australia Virtual Address Japan Virtual Address
0x801ce3c0 0x801ce300 0x801ce3c0

Objects

Unused Item Box Toggle

Gamecube-MKDD-SpecialItemBoxToggle-1.png

Item box objects (GeoItemBox) have a check for an unused toggle that is disabled for every item box in the game. When this toggle is set to 0x01, a random special item will always appear in the item slot, regardless of the selected character or if another character already has a special item. This toggle is a leftover from earlier in development when special items were tied to item boxes, and not players. A brief clip of this functionality happening in game can be seen in some of the b-roll spread during E3 2003. Note that in the actual E3 demo, special items already behave like they do in the final game.

Unused Bowser's Castle Laugh Trigger

In Bowser's Castle, if a cannon object (GeoCannon) is placed on the course and come in contact with, an evil laugh sound effect will play, which is heard across the track when taking damage. For track specific sound effects, the game checks a variable in memory (GameAudio::Parameters::sRaceCourse) to determine what track the player is on. If the player is playing on Bowser's Castle, this variable is set to 0x2F and the evil laughter is set to play when taking damage. However, this laughter is for some reason also set to play if the player is in a state of flying, which can only happen if the player is set to come in contact with a cannon, none of which exist in the track's files, leaving this functionality unused. It's possible a cannon was once considered to appear in Bowser's Castle.

Item Slot Lists

Item slot lists are lists keeping track of item probabilities, which determine in which scenarios the player should be given an item.

Duplicate Lists

Item slot lists are spread across three different files in MRAM.arc/item: itemslotlist.dat, itemslotlist1.dat and itemslotlist2.dat. The first list is used during normal gameplay and during VS. races with item boxes set to "recommended", wheras the second lists are used exclusively for either "basic" or "frantic" item box modes. As such, the last two files are only used for VS. races. Despite this, both files have item probability lists for Grand Prix and Battle Modes, even though neither of them are used in those scenarios. Both lists are identical to that of itemslotlist.dat, making these duplications.

Unused 13th List

A 13th table is present in all three of the listed files. It contains probabilities for 1st, 2nd and 3rd place for Green Shells (0x00), Red Shells (0x01) and Spiny Shells (0x02), all with a zero probability rate. It's unknown was this was meant for.

(Source: Custom Mario Kart: Double Dash!! Wiki)

Audio

Empty Sequences

The final three sequences that are present in the game's audio banks in AudioRes/Seqs/JaiSeqs.arc go unused. These sequences, according to GCKart.bstn and GCKart.daa are titled as follows:

  • JA_BGM_STAR (sequence 10) which would've played while using a Star item.
  • JA_BGM_FINALLAP_FANFARE (sequence 11) which would've played when the player reaches the final lap.
  • JA_BGM_WANWAN (sequence 12) which would've played when using a Chain Chomp item.

In the final game, all three of these sequences are streamed audio instead. Additionally, all three of these sequences were scrubbed, only leaving placeholder sequence files that are 96 bytes each.

Uncompiled Audio Bank Instructions

Present only in the European release (and kiosk demos compiled in September) are 163 lines of source code for the game's audio bank initialization in AudioRes/GCKart.daa. According to information displayed at the start of the source code, the project file was created on May 8th, 2003 by Yoji Inagaki, who is credited for sound programming. The US and Japanese releases removed this file altogether.

//***********************************************************
//			オーディオアーカイブ・初期化用(for New JAudio)
//			Project:	GC KART
//			Author:		Yoji Inagaki
//			Date:		2003.5.8(THU)
//***********************************************************

#define baac 'b', 'a', 'a', 'c', long, long

#include"GCKart.def"

//オーディオアーカイブの先頭にこれを書いてください
	begin_audio_arc

//サウンドテーブルをロードします
	bst, _BEGIN_BST, _END_BST

//サウンドネームテーブルをロードします
//	bstn, _BEGIN_BSTN, _END_BSTN

//波形をテーブルの0番にロードします
	ws, 0, NINTENDO_LOGO_MARIO_WS_START, 0xffffffff
	ws, 1, SE_WS_START, 0	//0xffffffff
	ws, 5, TANAKA_BGM_WS_START, 0	//0xffffffff

//バンクをロードし、波形テーブルの0番にアサインします
	bnk, 1, SE_BANK_START
	bnk, 0, NINTENDO_LOGO_MARIO_BANK_START
	bnk, 5, TANAKA_BGM_BANK_START

//ストリームファイルネームテーブルのロード(破棄可能・プログラムを通じて一つのみ)
	bsft, _BEGIN_SFT

//シーケンスコレクションのロード(破棄不可能)
//bsc ファイルの先頭のオフセット, ファイルの末端のオフセット
	bsc, _BEGIN_BSC, _END_BSC


//シーケンスのロード(破棄不可能)
//bms サウンドID, ファイルの先頭のオフセット, ファイルの末端のオフセット
	bms, JA_BGM_TITLE, _BEGIN_BMS_0001, _END_BMS_0001
	bms, JA_BGM_SELECT, _BEGIN_BMS_0002, _END_BMS_0002
	bms, JA_BGM_OPTION, _BEGIN_BMS_0003, _END_BMS_0003
	bms, JA_BGM_RECORD, _BEGIN_BMS_0004, _END_BMS_0004
	bms, JA_BGM_START_FANFARE, _BEGIN_BMS_0005, _END_BMS_0005
	bms, JA_BGM_START_FANFARE2, _BEGIN_BMS_0006, _END_BMS_0006
	bms, JA_BGM_START_FANFARE4, _BEGIN_BMS_0008, _END_BMS_0008
	bms, JA_BGM_START_FANFARE5, _BEGIN_BMS_0009, _END_BMS_0009
	bms, JA_BGM_START_FANFARE6, _BEGIN_BMS_0010, _END_BMS_0010
	bms, JA_BGM_STAR, _BEGIN_BMS_0011, _END_BMS_0011
	bms, JA_BGM_FINALLAP_FANFARE, _BEGIN_BMS_0012, _END_BMS_0012
	bms, JA_BGM_WANWAN, _BEGIN_BMS_0013, _END_BMS_0013


//カートカスタムのBAACのデータ
	baac, _BEGIN_BAAC, _END_BAAC

//オーディオアーカイブのコマンドの終了を表します
	end_audio_arc

//ここのあとにデータの内容を置きます。
//#incbinの対象となるファイルが必要です

//サウンドテーブルファイル
_BEGIN_BST
#incbin "GCKart.bst"
_END_BST

//サウンドネームテーブルファイル
//_BEGIN_BSTN
//#incbin "GCKart.bstn"
//_END_BSTN

//ストリームファイルネームテーブル
_BEGIN_SFT
#incbin "GCKart.bsft"
_END_SFT

SE_BANK_START
#incbin"SE/Banks/se00.bnk"
#evencl
SE_BANK_END
SE_WS_START
#incbin"SE/Banks/se00.ws"
#evencl
SE_WS_END

TANAKA_BGM_BANK_START
#incbin"BGM/Tanaka/Banks/bgm.bnk"
#evencl
TANAKA_BGM_BANK_END
TANAKA_BGM_WS_START
#incbin"BGM/Tanaka/Banks/bgm.ws"
#evencl
TANAKA_BGM_WS_END

NINTENDO_LOGO_MARIO_BANK_START
#incbin"SE/Banks/NintendoLogoMario.bnk"
#evencl
NINTENDO_LOGO_MARIO_BANK_END
NINTENDO_LOGO_MARIO_WS_START
#incbin"SE/Banks/NintendoLogoMario.ws"
#evencl
NINTENDO_LOGO_MARIO_WS_END

_BEGIN_BSC
#incbin "SE/Seqs/GCKartSe.bsc"
_END_BSC

_BEGIN_BAAC
#incbin "SceneJPN.baac"
_END_BAAC

_BEGIN_BMS_0001
#incbin "Bms/0001.bms"
_END_BMS_0001

_BEGIN_BMS_0002
#incbin "Bms/0002.bms"
_END_BMS_0002

_BEGIN_BMS_0003
#incbin "Bms/0003.bms"
_END_BMS_0003

_BEGIN_BMS_0004
#incbin "Bms/0004.bms"
_END_BMS_0004

_BEGIN_BMS_0005
#incbin "Bms/0005.bms"
_END_BMS_0005

_BEGIN_BMS_0006
#incbin "Bms/0006.bms"
_END_BMS_0006

_BEGIN_BMS_0008
#incbin "Bms/0008.bms"
_END_BMS_0008

_BEGIN_BMS_0009
#incbin "Bms/0009.bms"
_END_BMS_0009

_BEGIN_BMS_0010
#incbin "Bms/0010.bms"
_END_BMS_0010

_BEGIN_BMS_0011
#incbin "Bms/0011.bms"
_END_BMS_0011

_BEGIN_BMS_0012
#incbin "Bms/0012.bms"
_END_BMS_0012

_BEGIN_BMS_0013
#incbin "Bms/0013.bms"
_END_BMS_0013

Strings

Build Dates

Build dates for the different regions are present among the game's executable files. The debug build would display these dates on the Nintendo screen.

Offset Build Date
USA (Kiosk) 0x30AAE0 Wed Sep 10 15:29:41 2003
Europe / Australia (Kiosk) 0x339F80 Mon Sep 15 17:05:55 2003
Europe / Australia 0x329BC0 Fri Oct 3 00:41:20 2003
Japan (Kiosk) 0x32E920 Mon Oct 6 13:28:37 2003
USA / Korea 0x31FD80 Mon Oct 6 18:03:54 2003
Japan 0x33A3A0 Thu Oct 9 18:35:51 2003
USA (Debug) 0x35D8E0 Mon Jul 5 13:04:10 2004

The build date for the European version was referenced in an interview with the game's producers in Nintendo Official Magazine Issue 137.

Of all the different international versions of Mario Kart Double Dash, we completed the European version first. We really wanted the European fans to play with the game as soon as possible.
―Kiyoshi Mizuki[4]

Course Dedications

Internal file names for the courses, which give the theme or character the track is dedicated to, indicate that some of the otherwise-neutral tracks were actually dedicated to certain characters. Note that, while Baby Park shows it's dedicated to both Baby characters from the game's debug course select, the file name shows it's dedicated to Baby Luigi specifically.

Course File name Debug name Dedicated to
Baby Park BabyLuigi(L).arc Baby Baby Luigi
Mushroom Bridge Nokonoko(L).arc Nokonoko Koopa Troopa
Mushroom City Patapata(L).arc Patapata Paratroopa
Dino Dino Jungle Diddy(L).arc Diddy Diddy Kong

Texture File Dates

A couple of textures in the course's files have a month and day noted in their filename to indicate when the texture was last modified. Three regular courses and one Battle Mode course have these dates.

Course File name Date
Baby Park bb_iro_0808 August 8th
bb_kanban0905 September 5th
bb_kanban0710 July 10th
Mushroom City pt_kinokoueyou0820 August 20th
pt_road_konkri0907 September 7th
pt_douro_kousoku_tougou0806 August 6th
pt_kanban_tougou_karidatra_0818 August 18th
pt_tuki_hikari0907 September 7th
Rainbow Road RR_yakei0916 September 16th
Luigi's Mansion lm_komono0919 September 19th

Staff Ghost Initials

Despite never being shown in-game, all Staff Ghosts do have three letter initials present in its .ght file. Only three initials are ever used: "AAA", "XYZ" and "EAD", the last of which being a reference to Nintendo EAD.

Course Initials
Luigi Circuit AAA
Peach Beach AAA
Baby Park AAA
Dry Dry Desert XYZ
Mushroom Bridge AAA
Mario Circuit AAA
Daisy Cruise AAA
Waluigi Stadium XYZ
Sherbet Land EAD
Mushroom City XYZ
Yoshi Circuit EAD
DK Mountain EAD
Wario Colosseum XYZ
Dino Dino Jungle XYZ
Bowser's Castle EAD
Rainbow Road EAD

File Names

Spiny Shell Internal Name

In MRAM.arc, the spiny shell's file name is titled item_koura_yellow, referring to a Yellow Shell. Either the Spiny Shell was going to be yellow instead of blue, or at some point it was a normal Yellow Shell.

Diddy Kong's Internal Name

Several files refer to Diddy Kong as dk_jr. An unused character portrait found in the files of the North American and European kiosk demos indicates that Donkey Kong Jr. was a playable character before being replaced by Diddy. It's possible the developers either forgot to replace some of these internal names, or it was easier to continue using these names than replace them entirely.

Out Of Bounds Oddities

This cactus is UNDER CONSTRUCTION
This article is a work in progress.
...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes.
Notes: Slipped in some notes for now. Could be moved to a subpage.

Baby Mario's Incorrect Texture Mapping

Gamecube-MKDD-BabyMario Texture-1.png

If the player get the camera to clip through Baby Mario's overalls, the inside of his legs will reveal his entire texture sheet as a result of the textures not being mapped correctly. Baby Luigi does not have this issue.

Baby Park Ferris Vertex Colors

the ferris wheel has vertex colors that seem unintentional.

Mushroom Bridge

Misplaced City

there's a city texture only viewable from the other side.

Vertex Coloring

early vertex color leftovers on the mushroom houses, also seen in a preview video (needs a lot more details than the other items here).

Incorrect Lamp Textures

the underside of the lamps display an entire texture sheet.

Mario Circuit Texture Stretching

one of the hills has incorrectly stretched textures, missing a grass texture on top. this error was carried over to MKWii (include a screenshot of both games).

Daisy Cruiser Stretched Block

one of the blocks just before the exit of the cruise's inside is weirdly stretched.

Waluigi Stadium Flipped Bumpers

some of the wario kart bumpers just before "the big jump" are flipped.

Sherbet Land Vertex Coloring

one of the koopa kart banners has additional vertex coloring, and the backside of the pillars are brighter than the front.

Mushroom City

Incorrect Road Texture

there's a small nodge on the side of the road in the four-way section that has a black/yellow stripe applied.

Early Road Bumper

a non-drivable section has a bumper that cuts off to a different texture. this texture was placed exactly the same was in the E3 demo.

Incorrect Banner Placement

one of the shops has a banner clipping through a wall.

Bad Lamp Texture Stretching

the front and backs of the lamps seen after the roads align are stretched weirdly. the sides don't have this issue.

part of the super mushroom sign is missing a single row of pixels, making it look transparent.

Incorrect Wall Placement

one of the building walls (right next to the birdo watching sign) is messed up.

Missing Wall

one of the walls seen underneath the road after the finish line is missing.

Leftover Vertex Coloring

leftover of early vertex colors can be found hidden in one of the buildings, right next to the finish line.

Misplaced Banner

Gamecube-MKDD-MushroomCity SuperStarBanner-1.png

Behind one of the buildings near the finish line in Mushroom City is a flipped SUPER STAR! banner. Because this banner is invisible from the front - probably by mistake - and impossible to see from the back during normal gameplay, this banner remains hidden.

Rainbow Road Misplaced Heart

MKDD Rainbow road Heart.png

Just outside the skybox in Rainbow Road is a misplaced heart. Unlike other objects that were disabled altogether, this heart is part of the course's model and can't simply be disabled. The colors of the heart change depending on the position of the camera, since the texture's normals were mistakenly set wrong, hence why the model was probably intentionally placed outside the skybox.

Because this is the only heart placed in the course, it's accompanying texture goes unused.

MKDD Rainbow Heart Texture.png

Luigi's Mansion Ceiling Maps

Outside the boundaries of Luigi's Mansion is a set of seven ceiling areas. These areas determine the limit of how high a kart can fly in the air after getting hit with a Bob-omb item. However, since these areas are placed out of bounds, they're never used, and appear to be a leftover from an earlier version of the map. Since the dimensions of these areas and the course model are close, applying them to the course does roughly work, though none of the stairways are covered.

Pipe Plaza Misaligned Texture

Gamecube-MKDD-PipePlaza Sand-1.png

While this isn't normally seen during gameplay, a small portion of the grass in Pipe Plaza is covered in sand. This is because the grass texture is placed right next to the sand texture in the map's texture sheet, with this small portion just being a little bit misaligned.

Contest Code

Mariocontestdash.png

After completing a Time Trial, press L, R, L, R, X, Y, X, Y, Z in order to reveal a string of 16 characters on the bottom of the screen. This string of characters is a code used for contests to check a person's Time Trial run. The code contains information for what track was raced on, the amount of laps, the karts and drivers used, the total time to complete the course and the best lap time. Note that the code will not be displayed when the total time exceeds 8:44.288, or the best lap time exceeds 4:22.144. This fan-made decoder can decode this string to view the Time Trials' contents.

Despite this code working in any version of the game, the only instance where this code was referenced by Nintendo was in a Japanese Club Nintendo Time Trial contest. Participants were asked to press the button combination to reveal their code for the contest. After that, they would've had to submit their code in a registration form, with the selected winners having to send their Memory Card with a copy of their Ghost Data to Nintendo for confirmation. The contest had the participants race for the best times on Luigi Circuit, Baby Park, Mario Circuit and Yoshi Circuit on any possible kart or character combination. Everyone who attended the contest got 5 free Club Nintendo points (which would be given out somewhere near the beginning of February), with the top three winners getting their times displayed on the official website once the contest concluded, and the top player having their run as a downloadable recording.

The contest was open from Thursday January 15th, 2004 to Sunday February 1st, 2004. Despite there being a possibility to have several winners for each track, Takagi Nobuo (高木伸夫) won the contest for all four tracks. Other contest winners are as follows:

Track Time Winner
Luigi Circuit 1:16.910 Takagi Nobuo (高木伸夫)
1:17.263 Maruyama Tsuyoshi (丸山 剛)
1:17.594 Hikari (ヒカリ)
Baby Park 1:05.963 Takagi Nobuo (高木伸夫)
1:06.374 BOM
1:06.400 Hikari (ヒカリ)
Mario Circuit 1:29.317 Takagi Nobuo (高木伸夫)
1:30.795 Hikari (ヒカリ)
1:31.672 Ma ̄-kun (まーくん)
Yoshi Circuit 1:44.323 Takagi Nobuo (高木伸夫)
1:45.614 Take (《茸》)
1:45.880 FANTM
(Source: PushDustIn from Source Gaming)

References