the cutting room mirror

Debugging Menus

This article has a talk page!
view on tcrf.net

This is a sub-page of Proto:Super Mario Kart.

'...But what does it mean?'
This game has text or audio that needs to be translated. If you are fluent with this language, please read our translation guidelines and then submit a translation!

WARNING: Language tag not added.

Careful, you'll lose an eye.

This page or section needs more images.
There's a whole lotta words here, but not enough pictures. Please fix this.

To do:

  • Upload patch to fix the SFX-DOS interface for the editor modes. Works this branch of bsnes-plus (upload a proper release build of this bsnes-plus version if possible.)
  • Verify and correct Sound Effects.
  • Add images of modes.
  • Check if the second controller also has some controls.

Main Debug Screen#

Appearance in May Prototype, Improper Sprite Set Fixed Katakana Sprite Set (Source: MrL314) This Debug Menu can be found in the following builds:

On all other prototypes, like the mkart build, the debug mode part of the ROM has been removed, possibly to save cartridge space. That's why it crashes on these builds when you try to load the debug mode; though it is possible that some development cartridges housed an extra EEPROM for the debug part of the ROM to be burnt on, hence why builds like the May build are split into two files. It can be accessed by pressing Start + Select on the title screen.

The kart-d build includes the debug menu, but is inaccessible without hex editing. To access it, open the ROM in a hex editor, and go to offset 0x80000, and insert the first 0x8000 bytes from kimura/kart/risc/bin/editchar.bin, and save the ROM. The Select + Start combo should now work and the menu should load.

Debug Menu translates roughly to

MARIO KART DEBUG MODE
    
WORLD                00
COURSE               00

RACE START

BATTLE               00
MAP                  00

BATTLE START

EDIT1
EDIT2
MODE7 CHARACTER
COLOR MAP
DEMO1
DEMO2

SOUND TEST

EXIT

The katakana on this menu does not use any dakutens or handakutens, however they can be implied when translating. For verification, check kimura/kart/risc/join/edit_data.asm.

(Source: MrL314)

Debug Menu Options#

1st option (ワールト | "WORLD"): Cup Number#

Sets the Cup ID to load.

2nd option (コース | "COURSE"): Race Number#

Sets the track ID to load.

3rd option (レース スタート | "RACE START"): Grand Prix Test - Start#

Start a Grand Prix or a Match Race (depends on what was selected before on the title screen), based on the cup and race number given by options 1 and 2 (shown below).

  • It loads AI Zone, targets and object overlays from SRAM and not from the ROM itself. If no AI checkpoint data is stored in SRAM, the game crashes. Therefore it needs at least one AI Zone in the selected track placed and saved in SRAM in order to work (can be done with EDIT1 debug tool).
    • In the kart-d build, it loads the configurations and AI directly from the ROM when no edits were saved in SRAM.

Cup Number

Race Number

00

00

Mario Circuit 1

01

Choco Island 1

02

Koopa Beach 1

03

Donut Plains 3

The Grand Prix/Match Race will be in a Debug Mode. The race starts instantly (even before the countdown) and there are debug tools and commands accessible by pressing a certain button combination. Some of these debug tools can still be accessed in the final version via Action Replay codes.

Button Combination

Debug Tool

Hold L + R and press Select

RAM Viewer / Editor Table

Hold Down + L or R and press Select:

Mini RAM Viewer / Editor

Hold Up + L or R and press Select

CPU Usage Meter

Hold X+A+B and press Y

Enable Last Lap Cheat by pressing L. A piece of the Boo item (its mouth) will be displayed on the top left.

Hold L+R+X and press A:

Enable Item debugger. Another piece of the Boo item (its back) will be displayed on the top left.

More on that below.

(Source: MrL314)

4th option (ハトル | "BATTLE"): Battle Mode - Set Battle Objects#

  • Completely unused. Intended use was possibly to set the battle mode objects overlay for use in Battle Mode Debugging.

(Source: MrL314)

5th option (マッフ | "MAP"): Battle Mode/EDIT1/EDIT2 - Set Track#

Sets the track to load when using EDIT1, EDIT2 mode as well as Battle Mode. Uses the internal track ID numbers.

00: Mario Circuit 3
01: Ghost Valley 2
02: Donut Plains 2
03: Bowser Castle 2
04: Vanilla Lake 2
05: Rainbow Road
06: Koopa Beach 2
07: Mario Circuit 1
08: Ghost Valley 3
09: Bowser Castle 3
0A: Choco Island 2
0B: Donut Plains 3
0C: Vanilla Lake 1
0D: Koopa Beach 1
0E: Mario Circuit 4
0F: Mario Circuit 2
10: Ghost Valley 1
11: Bowser Castle 1
12: Choco Island 1
13: Donut Plains 1
14: Battle Course 3
15: Battle Course 4
16: Battle Course 1
17: Battle Course 2
>17: Garbage

(Source: MrL314)

6th option (ハトルスタート | "BATTLE START"): Battle Mode Test - Start#

Starts a battle (requires you to select Battle Mode on the title screen before to prevent it from crashing).

  • Loads AI Zones and object overlays from SRAM instead like Grand Prix/Mode (except kart-d build).
    • Needs at least one AI Zone in the selected track placed and saved in SRAM in order to work (Can be done with EDIT1).
  • Has many problems regarding crashing. Due to a DSP routine that attempts to overwrite a nonexistent racer object, overwriting an index to a routine.

(Source: MrL314)

EDIT1 (Source: LuigiBlood) Creating AI zones. Unused Area forms 0A and 0C.

7th option (EDIT1): AI Zone and Target editor.#

Editor for the AI zones as well as AI target/respawn points. It loads the selected track in the 5th option (マッフ) in a top-down view. It's also gridded. RAM ERROR is displayed on the screen if SRAM does not contain valid data.

There are also coordinates on the top left.

When pressing Select, you can shuffle through 3 options: SET., CODE and PONT.

CODE#

Puts down numbers and letters by pressing Y that increase in 2 increments (00 - 0C). These are used to create AI zones. Putting one down and pressing B on it will increase it, pressing Y will decrease it. These numbers determine what form the zone will get.
Number that determines the form:

   00 = Rectangle
   02 = Triangle top-left
   04 = Triangle top-right
   06 = Triangle bottom-right
   08 = Triangle bottom-left
   0A = Diagonal Line top-right to bottom-left; UNUSED 
   0C = Diagonal Line top-left to bottom-right; UNUSED 

SET.#

Sets the size of the AI zones by clicking on a code number with B, then pressing B somewhere to set the destination of the size. The exact placement of where you need to press B in order to place the zone differs for each zone type. Required position of the destination for each zone is listed below:

   00: Final X more right than start X, Final Y below start Y
   02: Final X equal to start X, Final Y below start Y
   04: Final X equal to start X, Final Y below start Y
   06: Final X equal to start X, Final Y above start Y
   08: Final X equal to start X, Final Y above start Y
   0A: Final X more left than start X, Final Y below start Y
        - X distance must be less than Y distance to work properly
   0C: Final X more right than start X, Final Y below start Y
        - X distance must be less than Y distance to work properly

PONT#

Puts down target location and respawn points by pressing B (it also makes a coin sound). They are shown in the form of wall part. Pressing X on a square will change its color that determines the speed configuration of that checkpoint.
The color determines the speed:

   RED = speed 3
 GREEN = speed 2
  BLUE = speed 1
YELLOW = speed 0

Hovering over one of these blocks will set the values of S and P in the top-left window. S is the speed setting of the current target block, and P is the AI zone number that the target corresponds to.

Pressing R will reveal some other options that can be shuffled through by pressing Up and Down:

  • S-RAM: S-RAM will be displayed on the bottom, and the options YES and NO also pop up. Selecting YES with the B button will play the sound of shooting a Koopa Shell and the text NOW SAVE will be displayed before disappearing.

This will save the current configuration of AI Zones, Targets, and Speeds to SRAM in a predetermined location based on the track number. Starting a race on this track from the Debug Menu or from the normal menu will load these configurations then. Most likely used by the developers for quick tests.

  • CLEA (clear): Resets everything.
  • L-DISK: Executes the LOAD system call for the SFX-DOS, and loads track data from an external floppy disk. Currently non-functional without modding. See here
  • L-RAM: Plays the Koopa Shell sound. This will load the configuration of AI Zones, Targets, and Speeds from SRAM from a predetermined location based on the track number.
  • S-DISK: Executes the SAVE system call for the SFX-DOS, and saves the track data to an external floppy disk. Currently non-functional without modding. See here

(Source: Dirtbag, MrL314 and Kowski)

8th option (EDIT2): Object overlay editor#

Loads an editor for placing the objects like Itemfields, Coins, Zippers and more.

Controls:

Press Select to choose tile type
    Up/Down - select different type
    Left/Right - select different direction
R cycle save options
L when R has been pressed seems to cycle through 10 slots
B to place object
Y to delete object

Object types:

QUES - Questionbox field
NIKO - Empty Questionbox field
AROW - Zipper
KABE - 2x2 Blockage with 4 colored blocks (unused in the final game)
OIL  - Oilslick
JUMP 0N - Jumpbar horizontal
JUMP 1N - Jumpbar vertical
COIN 0N - + shaped coins
COIN 1N - x shaped coins
COIN 2N - / shaped coins
COIN 3N - \ shaped coins
COIN 4N - - shaped coins
COIN 5N - | shaped coins
COIN 6N - Single coin
  • Top banner:
    • First Letter - Editing Mode: Y (presumably ”yakumono”)
    • Next 3 Letters - Track Theme:
CIR = MC (CIRcuit)
QBA = GV (QBAke) ["obake" means ghost]
GRA = DP (GRAss)
CAS = BC (CAStle)
ICE = VL (ICE)
DAR = CI (DARt) [dirt]
SAN = KB (SANd)
  • After Dash:
    • First Digit - Map index in theme
    • Second Digit: Save Slot
MC2: YCIR-1
GV2: YQBA-1
DP2: YGRA-1
BC2: YCAS-1
VL2: YICE-1
RR:  YDAR-1
KB2: YSAN-1
MC1: YCIR-2
GV3: YQBA-2
BC3: YCAS-2
CI2: YDAR-2
DP3: YGRA-2
VL1: YICE-2
KB1: YSAN-2
MC4: YCIR-3
MC2: YCIR-4
GV1: YQBA-3
BC1: YCAS-3
CI1: YDAR-3
DP1: YGRA-3

(Source: MrL314)

9th option (モート7 キャラ | "MODE7 CHARACTER"): Mode7 Tileset Viewer#

VRAM view (source: LuigiBlood)

Mode7 Tileset Viewer. Buggy.

  • Unknown at this time if there is any intended control during this screen.
  • Inconsistent palette during different tests.

(Source: MrL314)

10th option (COLOR MAP): Color Palette Viewer#

CGRAM view

Color Palette Viewer. Static, and buggy. Currently unknown whether there is any control over this option.

(Source: MrL314)

11th option (DEMO1): Track Viewer / Object Editor (?)#

To do:

  • Translate the fixed text.
  • Check what the "save" feature really does (SFX-Disk specific?).
  • Find out what object 00 is.

SMKproto_DebugDemo1.png "Saving" screen with fixed Katakana Font. Appearance in kart-d with zooming function. Loads a viewer in a top down view of the track selected in the Course and World value. The track's specific objects like pipes, thwomps, moles etc. and also Match Race objects like the Chain Chomps and the Bananas can also be viewed and edited. They will be displayed in the form of numbers while the number determines which kind of object and to which visibility area it belongs. It doesn't seem to be possible to save new edits however (Investigation needed).

Depending on which mode was accessed before, overlay objects like item fields can be displayed as well (Time Trial for example will remove them).

At the top-left are the coordinates and the currently placeable object. The numbers at the middle-left side appear to be Mode7 values of how the track is zoomed and placed.

This editor has some differences in some builds:

  • Only in the Feb build it is possible to rotate the track. There was also more Japanese text, displayed in place where the R and W letters are displayed in later builds.
  • In the kart-d build the numbers were removed, zooming controls were added and the zoom is set to display the entire track by default. This might have been used to capture track previews for medias such as magazines, promos and also the game's manual.

Controls:

B - lays object
Y - removes object
X - changes number
Select - toggles cursor on and off and enables load (and save?) feature
Start+Select - goes back to menu
L - quick move
D-Pad - move

kart-d only:
Y - Zoom in
X - Zoom out

Number Meaning:

00 - ???
01 - Object, visible in area 1
02 - Object, visible in area 2
03 - Object, visible in area 3
04 - Object, visible in area 4
05 - Chain Chomp Horizontal
06 - Chain Chomp Vertical
07 - Banana

Pressing Select will remove the coordinates and the cursor.
Holding R will display the letter R and pressing B then will load the objects for the track. Holding L displays a W and pressing B then will display some garbage tiles for a short moment (possible for saving?). Replacing the font with the Japanese font type will fix the garbage tiles (shown right). (Translation needed).

(Source: MrL314)

12th option (DEMO2): Sprite Animation Test#

DEMO2

Displays character models with Mario, Luigi, Bowser, and Princess Toadstool spinning. It also includes miscolored sprites of two shells and a banana.

(Source: MrL314)

13th option (サウント テスト | "SOUND TEST"): Sound Debugging#

Sound Debugging Menu

Displays the four sound effect registers.

  • 2140: Main SFX register. Values given below (Confirmation needed)
    01: "Race Fanfare" song
    02: **"Time Trial Countdown" song
    03: "Race Countdown" song
    04: **SNES-loaded Song
    05: "Final Lap Jingle" song
    06: "Last Lap" version of SNES-loaded Song 
    07: Even Faster version of SNES-loaded Song
    08: "Starman Theme" song
    09: "Race Qualified" song
    0A: "No Record" song
    0B: "Rank Out" song    
    0C: "Mario's Rank" song
    0D: "Luigi's Rank" song
    0E: "Bowser's Rank" song
    0F: "Peach's Rank" song
    10: "DK Jr's Rank" song
    11: "Koopa Troopa's Rank" song
    12: "Toad's Rank" song
    13: "Yoshi's Rank" song
    14: "Game Over" song
    15: Super fast SNES-loaded Song
    16: SNES-loaded Song
    17: ???
    18: ???
    19: ???
    1A: ???
    1B: ???
    1C: ???
    1D: Silence Music
    1E: Fade out Music while playing
    1F: Hang Last Played Notes
    20: Coin
    21: Hop/Ramp (Probably Hop)
    22: Monty Mole Hole Hop
    23: Choco Island Bump Hop/Cheep Cheep Balloon Inflation
    24: Feather Jump 
    25: Landing from Hop
    26: Racer "Poof"
    27: Falling off of Edge
    28: Falling into Lava
    29: Erase Data/Balloon
    2A: Player Stunned
    2B: Item Launched by Player
    2C: Cursor Moved
    2D: Start Pressed
    2E: Confirm Selection
    2F: Cancel Selection
    30: Shell/Bullet Bill Bounce Loud
    31: Shell/Bullet Bill Bounce Med
    32: Shell/Bullet Bill Bounce Soft
    33: ** ceh-bwoom Loud
    34: ** ceh-bwoon Med
    35: ** ceh-bwoom Soft
    36: Trophy Drop Loud
    37: Trophy Drop Med
    38: Trophy Drop Soft
    39: Item Hit Loud
    3A: Item Hit Med 
    3B: Item Hit Soft (May Proto), Extra Life (kart-d)
    3C: (MC) Wall-hit 1 Loud
    3D: (MC) Wall-hit 1 Med
    3E: (MC) Wall-hit 1 Soft
    3F: (MC) Wall-hit 2
    40: Ghost Valley Wall-Hit
    41: Hit Ice Block
    42: Racer Collision
    43: Hit Pipe/Thwomp
    44: Thwomp Pound Loud
    45: Thwomp Pound Medium
    46: Thwomp Pound Soft
    47: Flattened swaying down
    48: Speed Boost 
    49: Champaign Cork Pop
    4A: Cheep Cheep Balloon Deflation (May Proto), Jump/Hop (kart-d)
    4B: "Congratulations" Zoom and Bounce (Bounce only plays in kart-d)
    4C: Grow sound? (May Proto), Splash (kart-d)
    4D: MLKPT Taunt 1
    4E: MLKPT Taunt 2 (May Proto), Big Jump (kart-d)
    4F: Opponent Invincible
    50: Yoshi Taunt
    51: Bowser Taunt
    52: Item Placed
    53: Item Thrown by Non-Player
    54: Racer Collision
    55: Racer Collision Soft (May Proto), Item Selected (kart-d)
    56: Select again? (May Proto), Boo Item Steal (kart-d)
    57: Cancel again? (May Proto), Boo Item Steal Fail (kart-d)
    58: Item/Obstacle Destroy Loud
    59: Item/Obstacle Destroy Med
    5A: Item/Obstacle Destroy Soft
    5B: "Ranked Out" Bouncing Sound
    5C: DK Jr Taunt
    5D: Crush + Flattened Paper Sound (May Proto), Shrink (kart_d)
    5E: Shrink (May Proto), Silence (kart_d)
    5F: Grow (May Proto, Unused?)
        60: Silence
        61: Lightning (kart-d)
        62-63: Silence
        64: Cheep-Cheep Balloon Waddle (kart_d)
        65: Monty Mole Detach (kart-d)
        66-67: Opponent Spin-Out (kart_d)
        68: Goal (kart-d)

    80-9F: Pause Menu (Control held to silence)
  • 2141: Extra Sound Effects, channel dependent
    • Format is --LR SSSS, where L="play left channel", R="play right channel", S=value from table below
    0: Breaking
    1: Skidding
    2: Lakitu Warning (May Proto), Bricks Skid (kart-d)
    3: Underwater
    4: Off-Road
    5: High pitched shuffle (used for driving over grass)
    6: Bonk (used for driving over a bridge)
    7: Low pitched shuffle (used for driving over snow)
    8: Splash (used for driving on water)
    9: Spin-out
    A: Lakitu towing player
    B: Item Roulette
    C: Item Selected (May Proto), Wood Skid (kart-d)
    D: Bottom 4 Warning (May Proto), Lakitu Warning/Bottom 4 (kart-d)
    E: Item Selected (May Proto), Monty Mole Attach + Squeaks (kart-d)
    F: No Sound
  • 2142: Left Channel Engine Pitch
  • 2143: Right Channel Engine Pitch

(Source: MrL314)

14th option (EXIT)#

Completely non-functional. Routine that is activated by this does not check controller inputs, and does nothing except return.

The soft reset cheat Y + B + Start + Select can be used to go back to the title screen.

(Source: MrL314)

Unused Debug Menu Options#

Startup screen for demo1. Luigi's sprite enlarged using buttons. demo1 in action. demo1: Internal name is "demo1", refers to an unused demo screen.

  • Starts off with a screen that says "Mario Kart World Championship".
  • Displays Mode7 animations of each racer spinning sequentially.
  • Each screen also displays the following text, loading each line by line (Like Race Results Screen).
BENETON B191
ENGINE FORD HB SERIES V
75DEB V8 3494CC

FEATURING
GEAR BOX
 BENETTON
TIRE
 PIRELLI
GASOLINE
 MOBIL
  • Luigi's sprite doesn't display correctly in kart_* and onwards. This is due to the animation being created back when Luigi used his own full body graphics. At this point in development, he shares Mario's body graphics.
  • Pressing Y increases the sprite's size.
  • Pressing A decreases the sprite's size.
  • Pressing Select resets sprite.
    • There is no limit to the sprite size, so it will flip upside down if it becomes too large.
  • Animation repeats after completion.

Video footage of this in action can be found here.

(Source: MrL314)

Earlier Debug Menus#

Nov'91 Proto Debug Menu (ED-3)#

Nov'91 Debug Menu

This version of the debug menu appears in the Nov'91 Prototype. It is an early version of the Debug Menu. As such, most elements from the later debug menus are missing. However, two of the debug options stayed in this menu:

  • MODE7 CHAR
  • COLOR MAP

There are three other options in this menu that don't seem to appear in later prototypes:

  • BATTLE OBJ
  • BOUND POWER
  • "MARIO"

BATTLE OBJ: Value is supposed to be bounded between 00 and 01, however due to unclean RAM it will sometimes start with a different value.

  • 00 - Sets the Battle Mode to "Coin Collection" mode.
  • 01 - Sets the Battle Mode to "Machine-Gun Mode", as referenced in this developer interview.

As of the time of this release, the "Gate Battle" was not properly implemented, so it is inaccessible by normal means.

BOUND POWER: Represents the power at which objects are knocked back by collisions.

"MARIO" Debug Option

"MARIO": This option will load up a screen with all 8 characters' sprites loaded up at a skewed angle. Unsure at the time if anything else is supposed to happen on this screen.

(Source: MrL314)

Other Debugging Options#

RAM Viewer / Editor Table#

Nov'91 Proto RAM Editor Mode Appearance in the May proto. All debug commands enabled at once. This mode is currently accessible in the Nov'91 prototype, May prototype, and the kart-d build.

Version 1 includes a full page of RAM viewing, with 4 groups of 8 bytes each. This version is accessed by pressing L+R+Down+Select (L+R+Select in kart-d). The selected nybble will flash, and you can move around the cursor with the D-Pad. Pressing A will increment the current nybble, and pressing Y will decrement the current nybble.
The accessible area is from address $7E:0000 to $7E:FFFF, so the upper area of WRAM is not accessible.

In the May build, it is required to start the race from the Debug Menu to get access to the RAM Viewer with the button combination. And you can only move the cursor when pausing the game.

Mini RAM Viewer / Editor#

This mode is currently accessible in all builds that have the Debug Mode partition. This can briefly be seen on a Japanese Promotional video.

The left chunk shows a 24-bit address which can be adjusted to anywhere in the SNES's 24-bit address space. The right chunk shows the values at that address.
To control this version, L and R move the cursor left and right respectively, A increments the selected nybble, and Y decrements the selected nybble.

In the May build, it is required to start the race from the Debug Menu to get access to the Mini RAM Viewer with the button combination.

February Prototype

Promotional Video

(Source: February Proto)

(Source: MrL314)