If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
Mario Kart Wii/Unused Courses
This is a sub-page of Mario Kart Wii.
| This page sucks. If you could make it suck less, that would be awesome. Specifically: This page is a confusing mess |
There are a total of 12 unused course files, all present in the Race/Course directory.
Contents
General
| Filename | Description | Notes | Identical to its respective single-player version? |
|---|---|---|---|
| winningrun_demo_d | Multiplayer version of the award ceremony version of Mario Circuit. | Only the single-player version is used, even when playing in multiplayer. | ✘ |
| loser_demo_d | Multiplayer version of the losing sequence version of Mario Circuit. | Only the single-player version is used, even when playing in multiplayer. | ✘ |
| ending_demo_d | Multiplayer version of the ending version of Luigi Circuit. | It is impossible to access this version of the course in multiplayer, since Grand Prix is a single-player mode. | ✔ |
| old_mario_gc_b | Unused version of GCN Mario Circuit. | - | |
| old_mario_gc_b_d | Multiplayer version of old_mario_gc_b. | ✔ | |
| ring_mission_d | Multiplayer version of the Galaxy Colosseum tournament stage. | It is impossible to access this version of the course in multiplayer, since competitions/tournaments were single-player only. | ✔ |
| draw_demo | Unused version of Mario Circuit. | - | |
| draw_demo_d | Multiplayer version of draw_demo. | ✘ | |
| old_mario_gc_hayasi | Unused version of GCN Mario Circuit. | - | |
| old_mario_gc_narita | Unused version of GCN Mario Circuit. | - | |
| old_mario_gc_yabuki | Unused version of GCN Mario Circuit. | - | |
| course.0 | Early version of Bowser's Castle collision and parameters. | Found within the archives of Bowser's Castle (koopa_course*.szs). | - |
old_mario_gc_b
This course is identical to GCN Mario Circuit, but there are a few small differences. This may in fact be a direct port of the data from Mario Kart: Double Dash!!, indicated by the lack of certain data whose formats were changed in this game. The differences found from the final version are:
| old_mario_gc_b | Final |
|---|---|
- The minimap appears to be missing, but it is present, it's simply mispositioned. Checking the map model inside the course file reveals that it's the same one as for the game's own Mario Circuit, with a slight difference in the vertex coloring in the tunnel part, being brighter in the final version.
- The Piranha Plants are missing their pipes.
- The Chain Chomp is missing.
- Cameras are not present.
- No item boxes are present in VS Mode.
- In addition, this track does not have a course ID defined.
- The course is rotated 180 degrees in comparison with the final version.
While the course does mostly function in VS mode since it has CPU routes and checkpoints, the game will crash when a CPU reaches the last jump of the course.
There is an .szs file for the multiplayer version of the course (old_mario_gcn_b_d.szs), but it is identical to the single-player version.
Models
- The little humps near the Goombas are the same shape as in the Double Dash version.
- Some textures' animations, like those for the water surrounding the castle, are unfinished and don't loop properly. The skybox does not rotate, wither.
- The lighting is a bit darker.
This course has an SCN0 file, which is used in many Wii games to control scene settings, such as lighting, fog, etc. This type of file, however, is not used in the final game at all, since this kind of settings are loaded from several subfiles usually found in subdirectory named posteffect in the course's archive. The SCN0 in this course contains the following data:
- One light whose starting position is XYZ = (4, 4, 4), with a Specular Shine of 16 (every other entry = 0). Both light and specular colors are equal to RGBA = (255, 255, 255, 255) (completely white).
- An ambient light whose color is equal to RGBA = (255, 255, 255, 0) (completely white).
- A camera with position XYZ = (0, 10, 20), Fov Y = 30, Aspect = 1,777777, Near Z = 1 and Far Z = 1000000 (every other entry = 0).
It is possible that this is just a default scene, considering other leftover SCN0 files found in the game (such as the one from Mushroom Gorge) have pretty much the same parameters as this one.
Collision
- The collision seems to be unfinished. When driving on grass, the game acts like the player is driving on dirt, the humps and the bridge are not trickable, and the course's collision is bouncier in general.
- Shadows don't give off a "shading" effect to anything that passes under them.
- One of the border road polygons at the right of the beginning of the course (right before it starts curving to the left) has been mistakenly assigned as off-road.
Parameters
Starting Position (KTPT)
The starting position is located more backwards than in the final version, and it is also slightly more shifted to the right.
CPU Points (ENPT and ENPH)
| old_mario_gc_b | Final |
|---|---|
This version has 45 CPU points defined, 13 less than in the final version, with the positioning changing a little bit in some sections, such as in the second curve, or inside the tunnel.
In the final game, these points are subdivided in 5 groups, and CPUs are also forced to do a wheelie in the first section after the starting line and also after the tunnel. The early version only has one single group, and CPUs aren't forced to do any action at all.
Notably, the final point (located before the finish line) is not connected to the first one. This will make the game crash when a CPU player is about to complete a lap, as they don't know where to go next. It is possible to fix this by changing the bytes at offsets 0x406 and 0x40C in the course.kmp file from 0xFF to 0x00.
Checkpoints (CKPT and CKPH)
The checkpoint data is almost the exact same as in the final version, with the only difference being some very slight positioning differences in some of them, which aren't apparent in normal gameplay.
Item Routes (ITPT and ITPH)
These sections are empty, so items such as the Red or Blue Shells won't follow a predetermined route when fired. In addition, using the Bullet Bill will crash the game, as it doesn't know where to go. This is not possible to see in-game however, since this version lacks item boxes.
Triggers (AREA)
A single AREA entry exists in this file. It is type 0x05, which was used in certain competitions/tournaments that took place in a specific part of the course to control which portions of the minimap appeared on screen. It has a rectangle shape, and it's located in the southern part of the track (the section with the Goombas).
This is responsible for mispositioning the minimap, making it look like there is none. By removing this entry (which can be done by changing the byte at offset 0x10B5 in the course.kmp file from 0x01 to 0x00), we can see the minimap again.
If the minimap model actually matched the course layout, we could see that it is supposed to zoom-in on the last section of the track (where this AREA trigger is positioned), as shown above.
Cameras (CAME)
The early version does not have any cameras defined. This will make the course opening cutscene end abruptly, and the camera will always stay behind the player after the race has ended or when watching a replay.
Respawn Point (JGPT)
The respawn point is located more backwards than in the final version, and it is also slightly more shifted to the right.
Stage Info (STGI)
This version lacks the lens flare flash effect that appears when looking at the sun, and additionally, the transparency for said effect is set to 0x00 (in the final version, it is 0x4B).
Either way, it is not possible to see this in-game, since this version does not have the object that makes the lens effect appear in the first place.
old_mario_gc_hayasi
Another unused version of GCN Mario Circuit, named after Yugo Hayashi from the game's Planning team. Unlike with old_mario_gc_b, it is impossible to load this track by swapping it with another course, as most of its subfiles are stored in an early version of their respective formats.
General
- This track does not have a course ID defined, so it cannot be loaded with code.
- This course does not have a multiplayer version (those whose filenames end with *_d).
- All the subfiles are stored in the root of the archive, instead of being inside a subdirectory named "." (dot).
- This course lacks a minimap model, which will make the game crash.
- The course is rotated 180 degrees in comparison with the final version.
Models
| To do: Figure out if the normals actually make the model look different. Loading the models in Wii Play (US, Rev. 0), which supports this older model format, does not show any difference when compared to old_mario_gc_narita's model, which doesn't have normals. Looking at the model in "brresviewer" shows it is much darker, however, it might just be an inaccuracy from the program. |
Both the course's and skybox's models (MDL0) are stored in an older version of the format, version 8, when the final game only supports version 11. And in the same way, the water texture animation (SRT0) is in version 4, when the final version can only handle version 5 files. Because of this, trying to load these files will crash the game.
The textures are stored in TEX0 version 1, when the final game only supports version 3. However, loading them actually works, since both versions share the same data structure with 1 section.
Once converted to the supported formats, the models, textures and texture animation look and behave seemingly the same to the ones seen in old_mario_gc_b (with the course model being ported directly from Double Dash!!), the only exception being that both the course's and skybox's models from this version have normals.
This course also has a SCN0 file (in version 4, most of the other SCN0 files in this game are in version 5), whose data is apparently the same as the one from old_mario_gc_b as well.
Collision
Identical to old_mario_gc_b, with one exception: this version adds two tree trunks for both trees that normally appear in the beginning of the big curve with the Chain Chomp. Not only do none of these trunks match the shape of the actual tree model, but the collision type is set to "regular wall" instead of "wooden", much like with the rest of the course's walls. In the final version, the tree's collision is not stored in the course's collision model itself.
Parameters
The course.kmp file is in an older version of the format (0x0640) in which some sections have a different layout, meaning they will crash in the final game. The older format has 8 sections, while the final version has a total of 15.
Starting Position (KTPT)
| old_mario_gc_hayasi | Final |
|---|---|
The starting position is placed slightly further than in the final version.
CPU Points (ENPT)
| old_mario_gc_hayasi | Final |
|---|---|
There are a total of 34 CPU points, 24 less than in the final version. It is impossible to know exactly how these points were linked and grouped together, as the section that controls this (ENPH) is missing. Because of this, CPUs won't move at all.
A few extra parameters are also unknown (such as the width in which the CPU can navigate and a few other settings like when should the CPUs use a Mushroom, do a wheelie, etc.), as this version of the format does not implement these entries.
Checkpoints (CKPT and CKPH)
| old_mario_gc_hayasi | Final |
|---|---|
This version has 41 checkpoints, 10 more than in the final version. They are also shorter in length for the most part, and because of this, the right corner of the entrance to the tunnel is outside of the area defined by these checkpoints.
The last three key checkpoints (in pink in the images above) are placed differently between both versions.
Objects (GOBJ)
This section is empty.
Object/Camera Routes (POTI)
This section is empty.
Cameras (CAME and AREA)
| old_mario_gc_hayasi | Final |
|---|---|
There are 8 cameras defined in this version: 7 FixSearch (static cameras that look at the player) and 1 Goal (after-race camera, highlighted in red in the images above), making this the only unused course with cameras defined.
They are all placed from the beginning of the track until around before the entrance of the tunnel, in different places when compared to the final version.
When the Goal camera is activated it will zoom in on the character very closely for a frame and then zoom out a little, to then stay in that position (in the final version, the camera starts far away from the character, to then slowly zoom in). This camera is also placed at a different angle.
| To do: Check wether this is actually the reason or if it's missing some additional information. |
While the first intro camera is defined to be the first one (index 0x00), that camera is not the type that is meant to be used in the intro sequence (with the type being OP_FixMoveAt and/or OP_PathMoveAt instead). Not only that but because this camera can only be activated by passing through its associated AREA, it does not actually show up in the intro. Instead, the camera stays in place behind the racers in the intro sequence (although this is just a side effect that is triggered when the game doesn't know which camera to use in the intro sequence).
| old_mario_gc_hayasi | Final |
|---|---|
Seven AREAs are also defined (seen above in semi-transparent yellow), all of which act as camera activators (one for each camera), so that when the player passes through them, its associated camera will activate. They are placed in similar positions as the cameras.
Other Sections
All of the other sections that the final game expects are missing, which is already enough to make the game crash.
old_mario_gc_narita
Another unused version of GCN Mario Circuit, named after Minoru Narita from the game's Planning team. Unlike with old_mario_gc_b, it is impossible to load this track by swapping it with another course, as most of its subfiles are stored in an early version of their respective formats.
General
- This track does not have a course ID defined, so it cannot be loaded with code.
- This course does not have a multiplayer version (those whose filenames end with *_d).
- All the subfiles are stored in the root of the archive, instead of being inside a subdirectory named "." (dot).
- This course lacks a minimap model, which will make the game crash.
- The course is rotated 180 degrees in comparison with the final version.
Models
Both the course's and skybox's models (MDL0) are stored in an older version of the format, version 8, when the final game only supports version 11. And in the same way, the water texture animation (SRT0) is in version 4, when the final version can only handle version 5 files. Because of this, trying to load these files will crash the game.
The textures are stored in TEX0 version 1, when the final game only supports version 3. However, loading them actually works, since both versions share the same data structure with 1 section.
Once converted to the supported formats, the models, textures and texture animation look and behave seemingly the same to the ones seen in old_mario_gc_b (with the course model being ported directly from Double Dash!!).
This course also has a SCN0 file (in version 4, most of the other SCN0 files in this game are in version 5), whose data is apparently the same as the one from old_mario_gc_b as well.
Collision
The collision file is byte-to-byte identical to the one from old_mario_gc_hayasi.
Parameters
The course.kmp file is in an older version of the format in which some sections have a different layout, meaning they will crash in the final game. The older format has 6 sections, while the final version has a total of 15.
Starting Position (KTPT)
| old_mario_gc_narita | Final |
|---|---|
The starting position is located in almost the same place as in the final version, albeit rotated 180 degrees in the Y-axis.
CPU Points (ENPT)
| old_mario_gc_narita | Final |
|---|---|
There are a total of 32 CPU points, 26 less than in the final version. It is impossible to know exactly how these points were linked and grouped together, as the section that controls this (ENPH) is missing. Because of this, CPUs won't move at all.
A few extra parameters are also unknown (such as the width in which the CPU can navigate and a few other settings like when should the CPUs use a Mushroom, do a wheelie, etc.), as this version of the format does not implement these entries.
Notably, all of these points are indexed following the course in reverse (i.e. the first point is located before the finish line, the second one before it in the jump, etc).
Checkpoints (CKPT and CKPH)
| To do: Figure out why in some places the game shows an incorrect position number. |
| old_mario_gc_narita | Final |
|---|---|
This version has 27 checkpoints, 4 less than in the final version. They are also shorter in length for the most part, and because of this, a few locations are outside of the area defined by these checkpoints.
Most of these are also placed in diagonal, and in some places (like around the beginning of the tunnel section), the position tracker will show an incorrect position number, to then correct itself as the player continues to drive.
Just like with the CPU points, all of these checkpoints are indexed following the course in reverse. This time, however, we can see that they are also linked following this order as well.
This, together with the fact that the starting point is rotated backwards, makes this version pretty remarkable, since it is driven backwards. Wether this was intentional or an oversight is unknown, however.
There is only one key checkpoint (the lap counter, in pink) located behind the finish line.
Objects (GOBJ)
This section is empty.
Object/Camera Routes (POTI)
This section is empty.
Other Sections
All of the other sections that the final game expects are missing, which is already enough to make the game crash.
old_mario_gc_yabuki
Another unused version of GCN Mario Circuit, named after Kosuke Yabuki from the game's Planning team. Unlike with old_mario_gc_b, it is impossible to load this track by swapping it with another course, as most of its subfiles are stored in an early version of their respective formats.
General
- This track does not have a course ID defined, so it cannot be loaded with code.
- This course does not have a multiplayer version (those whose filenames end with *_d).
- All the subfiles are stored in the root of the archive, instead of being inside a subdirectory named "." (dot).
- This course lacks a minimap model, which will make the game crash.
- The course is rotated 180 degrees in comparison with the final version.
Models
Both the course's and skybox's models, textures, and texture animation are byte-to-byte identical to the ones from old_mario_gc_narita.
Collision
| To do: Figure out the meaning of these differences and document them a bit further. More details on the KCL format. Maybe the "hitbox radius cap" is the reason why some vehicles bounce when first entering the course? |
The collision is almost the same one from old_mario_gc_hayasi, with the collision model itself being identical to that one. The only differences are the thickness field, the spatial grid first coordinate, the hitbox radius cap, and the "Spatial index" section is also completely different as well.
| old_mario_gc_yabuki | old_mario_gc_hayasi | |
|---|---|---|
| Thickness | 100 | 300 |
| Spatial grid first coordinate (X, Y, Z) | (-21254.80078125, 853.479614257812, -36923.25) | (-21454.80078125, 612.438903808594, -37316.14453125) |
| Hitbox radius cap | 50 | 250 |
Parameters
The course.kmp file is in an older version of the format (0x0640) in which some sections have a different layout, meaning they will crash in the final game. The older format has 8 sections, while the final version has a total of 15.
Starting Position (KTPT)
| old_mario_gc_yabuki | Final |
|---|---|
The starting position is located in the exact same position as old_mario_gc_hayasi, albeit rotated 180 degrees (0x43340000) in the Y-axis.
CPU Points (ENPT)
| old_mario_gc_yabuki | Final |
|---|---|
There are a total of 55 CPU points, 3 less than in the final version. It is impossible to know exactly how these points were linked and grouped together, as the section that controls this (ENPH) is missing. Because of this, CPUs won't move at all.
A few extra parameters are also unknown (such as the width in which the CPU can navigate and a few other settings like when should the CPUs use a Mushroom, do a wheelie, etc.), as this version of the format does not implement these entries.
Much like with old_mario_gc_narita, all of these points are indexed following the course in reverse (i.e. the second point is located before the finish line, the third one before it in the jump, etc).
Checkpoints (CKPT and CKPH)
| old_mario_gc_yabuki | Final |
|---|---|
This version has 61 checkpoints, 30 more than in the final version. They are also shorter in length for the most part, and because of this, a few locations are outside of the area defined by these checkpoints.
Just like with the CPU points, all of these checkpoints are indexed following the course in reverse. This time, however, we can see that they are also linked following this order as well.
This, together with the fact that the starting point is rotated backwards, makes this version pretty remarkable, since it is driven backwards. Wether this was intentional or an oversight is unknown, however.
There is only one key checkpoint (the lap counter, in pink) located behind the finish line, and interestingly, the previous checkpoint that is linked to it is located after this lap counter.
Objects (GOBJ)
This section is empty.
Object/Camera Routes (POTI)
This section is empty.
Cameras (CAME)
This section is empty.
Triggers (AREA)
This section is empty.
Other Sections
All of the other sections that the final game expects are missing, which is already enough to make the game crash.
draw_demo
Due to the name (draw), it was guessed that it was used for TEX0 testing. This is very unlikely, since this course uses TEX0 version 2, while the direct ports of GCN Mario Circuit use version 1. It also uses MDL0 version 11, instead of 8 like the direct ports of GCN Mario Circuit. All the files ending with "_demo.szs" except draw_demo.szs are used for cutscenes (loser_demo.szs for losing a Grand Prix, winningrun_demo.szs for winning), so it is very likely that Nintendo wanted to use draw_demo.szs for ties in GPs (this would explain the absence of objects, item boxes, checkpoints, enemy routes, etc.; since loser_demo.szs for instance does not have them).
In the middle of development (since the TEX0 version is between the direct port of GCN Mario Circuit and the final tracks) they apparently chose to use loser_demo.szs instead for ties with the text "Draw" in green instead of "The COLOR team lost." in the team's color. Also, it is only possible to receive a draw in Team GP. Another hint to that is how its course ID (0x39) is right after winningrun_demo (0x37) and loser_demo (0x38).
The differences from the final version are as follows:
- All textures look corrupted in-game. The textures, however, are correct in the files. The corrupted look is just a result of the textures being stored in TEX0 version 2 (2 sections), when the final game only supports v3 (1 section). Other than the texture format version being different, they are identical to those from loser_demo.
- The ramp and Chain Chomp objects are missing. Other objects like bushes, flowers, and trees are still present.
- There are no CPU routes, cameras, checkpoints (so no lap counts), or item boxes.
There is an .szs file for the multiplayer version of the course (draw_demo_d.szs). It's mostly the same, aside from a few textures being differently colored.
Collision
| draw_demo | loser_demo |
|---|---|
Seems to be mostly identical to the one from loser_demo, though the invisible walls located near the Chain Chomp are shorter in draw_demo. This might imply that draw_demo dates before the addition of the Jump Pad to the course, which would explain why these invisible walls were made taller in the rest of the versions of Mario Circuit (to prevent players from jumping over the walls to the other side of the course).
Another quirk in the collision is how all the lamp poles have the wall collision type set to "regular wall" (the default one), instead of being set to "metallic". This is also present in both loser_demo and winningrun_demo.
course.0
| Please elaborate. Having more detail is always a good thing. |
| This page or section needs more images. There's a whole lotta words here, but not enough pictures. Please fix this. Specifically: Please include something other than a clickbait YouTube video. |
This file is a unique file across all courses, but it appears to be a representation of Bowser's Castle prior to compilation into a U8 file. The file has been of great use to hackers, as it contains metadata describing the format of courses and revealing much info about the KMP file format.
The file appears to have been created 2007/08/30 11:50 by Yabuki Kosuke using a piece of software called JMap. It seems as though this was prior to the development of much of Mario Kart Wii, as it seems to describe features from Mario Kart DS along with all of its courses (including the unused ones), but no Mario Kart Wii courses are listed. The model contained in course.0 appears to be an early version of Bowser's Castle. It contains a few things that are not in the final course, including a cannon.
There is another JMap file found in The Legend of Zelda: The Wind Waker (version 1.31 from 2002). The version for this file in Mario Kart Wii is 2.8.4.1.