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
Publishers: Nintendo (JP/US/EU/AU), Daiwon C&A (KR)
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.
SoundIcon.png This game has unused sounds.
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 on 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
Hold that B button, it's time to start driving reverse.
Gamecube-MKDD-SubpageIcon DisabledObjects-1.png
Disabled Objects
Unseen objects whose functionalities remained.
Gamecube-MKDD-SubpageIcon UnusedGraphics-1.png
Unused Graphics
Banners and textures burried deep within the game's files.
Gamecube-MKDD-Subpage Oddities-1.png
Out Of Bounds Oddities
Not every game is perfect.
Gamecube-MKDD-SubpageIcon DebugContent-1.png
Debug Content
They tried, but not every developer tool was scrubbed.

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

Unused Sound Effects

Hmmm...
To do:
Try to get them to play and record them

Boo's Kart Horn

In the file /AudioRes/GCKart.bstn, there is a filename JA_SE_TR_HORN_TERESA where TERESA is the Japanese name for Boo. It happens to have the same data as JA_SE_TR_HORN_KINGTERESA which is used by King Boo's kart (Boo Pipes).

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

Missing Sequence

AudioRes/Seqs/JaiSeqs.arc has .bms files from 0001.bms to 0013.bms, except for 0007.bms. This is also reflected in AudioRes/GCKart.daa where the name JA_BGM_START_FANFARE3 is skipped.

Duplicate Sequenced Menu Music

The Options and Records screens use their own sequence files found in AudioRes/Seqs/JaiSeqs.arc: 0003.bms and 0004.bms, instead of reusing 0002.bms sequence from the main menu and LAN menus. Despite this, all 3 files are byte-for-byte identical to each other.

Streamed Battle Results Music Copy

When a track is completed on Time Trials and there is a new track record but no new lap record, the same theme as the battle results is played. Instead of playing the GOAL4_0.x.32.c4.ast streamed file, GOAL6_0.x.32.c4.ast is played instead which is not an identical file however the stream data is very similar.
Interestingly, in the US demo, the GOAL4_0.x.32.c4.ast streamed file is reused for this purpose, before it was changed to GOAL6_0.x.32.c4.ast in the EU demo.

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.

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