If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
Wii Sports/Unused Code
This is a sub-page of Wii Sports.
| 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: I'm still reverse engineering the game as I need to:
|
| ...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! |
The debug prints with Shift-JIS strings containing Japanese characters do not display properly on the NTSC-U nor PAL versions of the game.
Contents
Loading Screen
There is a function which prints "Now Loading" to the screen when the game switches between scenes; however, this function never gets called because the flag for displaying the screen is always cleared by the scene constructor.
| NTSC-J v1.01 | NTSC-U v1.01 | PAL v1.01 | |
|---|---|---|---|
| Gecko Code | C21853BC 00000002 38C00001 90DF003C 60000000 00000000 |
C2185450 00000002 38C00001 90DF003C 60000000 00000000 |
C2185614 00000002 38C00001 90DF003C 60000000 00000000 |
| Virtual address of the function displaying the loading screen |
0x801836e4 | 0x80183778 | - |
The Gecko codes above re-enable the loading screen by modifying the scene constructor to always set the flag which determines if the loading screen is displayed.
Placeholder Strap Warning Screen
In some versions of the game, the function which displays the strap warning screen checks the pack ID:
- If the pack ID is 0 or 1, the normal strap warning screen will be displayed.
- Otherwise, the string "ストラップ警告画面" will be printed to the screen.
The text simply means something along the lines of "Strap Warning Screen".
The valid pack ID values are:
- 0 (Wii Sports)
- 1 (Wii Play)
- 2 (Wii Fit)
- 3 (Wii Music)
| JP Rev 1 | US Rev 1 | EU Rev 1 | |
|---|---|---|---|
| Gecko Code | 041D2A44 60000000 |
041D2ADC 60000000 |
041D2CA8 60000000 |
| Virtual address of the function displaying the strap warning screen |
0x801d2a0c | 0x801d2aa4 | - |
The Gecko codes above enable the placeholder strap warning screen.
Debugging Functions
Build Dates
Originally, Nintendo developed a prototype software which included several tech demos that tested the Wii Remote's capabilities. The tech demos were divided into 2 categories: sports games, which became part of Wii Sports, and family-oriented games, which became part of Wii Play.
Included in the file timeStamp.txt at the root of the disc is a build date, alongside the internal name of the prototype software, "Pack Project". On the Wii Sports + Wii Sports Resort combo disc, this file is located with the rest of the game's files; e.g., on the European disc, in /EU/sys/sports.
| JP | JP Rev 1 | NA | NA Rev 1 | EU | EU Rev 1 | KR | TW | NA (Sports + Resort) |
|---|---|---|---|---|---|---|---|---|
2006/10/25 11:52 Pack Project |
2007/07/05 19:14 Pack Project |
2006/10/07 04:53 Pack Project |
2007/07/05 19:15 Pack Project |
2006/10/17 15:26 Pack Project |
2007/07/05 20:25 Pack Project |
2008/03/11 15:02 Pack Project |
2008/03/14 15:17 Pack Project |
2010/06/07 14:04 Pack Project |
| EU (Sports + Resort) | ||||||||
2010/06/07 14:10 Pack Project |
There are two different functions which were used to print the contents of timeStamp.txt to the screen on the title screen.
The function used to print the build date in Revision 0 prints the region, build type and the date and time in different lines.
The function used to print the build date in Revision 1 only prints the date and time in a single line.
| JP Rev 0 | JP Rev 1 | US Rev 0 | US Rev 1 | EU Rev 1 | |
|---|---|---|---|---|---|
| Gecko Code | 041D0F54 60000000 |
041EB9AC 60000000 |
041D0B88 60000000 |
041EBA44 60000000 |
041EBC10 60000000 |
| Virtual address of the function printing the build date to the screen |
0x80158fcc | 0x80186c98 | 0x80158edc | 0x80186d30 | - |
To enable this on bootup, either use the Gecko codes above, or enter the key combo mentioned in Wii Fit Plus' internal docs, "A, Up (D-Pad), 2, Down (D-Pad), B, 1, 1, B, Left (D-Pad), A and Right (D-Pad)" on a Wii Remote.
Bowling
Pin Debug Displays
Located at the following virtual addresses:
| JP Rev 1 | US Rev 1 |
|---|---|
| 0x803295c0 | 0x80329658 |
There exists a function that, for a given pin, may display its axes, its collision spheres, its vertices, and/or spheres which represent the pin's state, depending on the arguments given.
Collision Spheres
If the first boolean argument given is true, then the function will render blue spheres representing the pin's collision. The function will also display the pin's axes.
| JP Rev 1 | US Rev 1 | EU Rev 1 | |
|---|---|---|---|
| Standard, Spin Control and Picking Up Spares |
0049A0E8 00000001 | 004A9DE8 00000001 | 004C4368 00000001 |
| Power Throws | 004AD180 00000001 | 004BCE80 00000001 | 004D7400 00000001 |
To enable this, use the Gecko codes above.
Vertices
If the second boolean argument given is true, then the function will render yellow spheres representing the pin's vertices. The function will also display the pin's axes.
| JP Rev 1 | US Rev 1 | EU Rev 1 | |
|---|---|---|---|
| Standard, Spin Control and Picking Up Spares |
0049A0E9 00000001 | 004A9DE9 00000001 | 004C4369 00000001 |
| Power Throws | 004AD181 00000001 | 004BCE81 00000001 | 004D7401 00000001 |
To enable this, use the Gecko codes above.
Status Spheres
If the third boolean argument given is true, then, after the ball has stopped moving, the function will render blue spheres above the pins which aren't moving. In every game mode except for Power Throws, the function will also render yellow spheres above the pins which have been knocked down.
| JP Rev 1 | US Rev 1 | EU Rev 1 | |
|---|---|---|---|
| Standard, Spin Control and Picking Up Spares |
0049A0EA 00000001 | 004A9DEA 00000001 | 004C436A 00000001 |
| Power Throws | 004AD182 00000001 | 004BCE82 00000001 | 004D7402 00000001 |
To enable this, use the Gecko codes above.
Scene Status Displays
Located at the following virtual addresses:
| NTSC-J v1.01 | NTSC-U v1.01 |
|---|---|
| 0x8032f47c | 0x8032f514 |
There exists a function that checks for three debug flags in the game's main bowling data structure, with each flag enabling a different part of the debug display.
"Try Again" Placeholder
The function checks for one of the debug flags, and if the flag is set, it prints the string "トライアゲイン" to the screen.
| NTSC-J v1.01 | NTSC-U v1.01 | PAL v1.01 |
|---|---|---|
| 0432F49C 60000000 | 0432F534 60000000 | 0432F700 60000000 |
To enable this, use the Gecko codes above.
Score Display
The other two debug flags checked by the function display the score for the minigames.
The top score is used for the Training game mode, while the bottom score is used for the Wii Fitness game mode (albeit the bottom score is based on the top score). The top score is updated every frame, while the bottom score is only calculated when the game ends, and the calculation is based on the top score.
To enable the score display, use the Gecko codes above.
Debug Graphs
To do:
|
There is a function which, when its debug flag is set, draws many graphs to the screen.
| NTSC-J v1.01 | NTSC-U v1.01 | PAL v1.01 | |
|---|---|---|---|
| Gecko Code | 0432341C 38800001 |
043234B4 38800001 |
04323680 38800001 |
| Virtual address of the function displaying the graphs |
0x80320e64 | 0x80320efc | - |
This display was developed with widescreen in mind, as attempting to view this with a 4:3 aspect ratio results in much of the right edge of the display getting obscured from view. Because of this, these images were captured with a widescreen (16:9) aspect ratio.
The Gecko codes above enable the graphs.
Phase 1 Display
The graph is in its first phase when the Mii is still holding the ball.
Phase 2 Display
The graph transitions to its second phase when the Mii drops the ball, or at the start of a roll.
Phase 3 Display
NPC Data Display
The 6 Miis bowling in the neighboring lanes are referred to internally as "NPCs", and the DOL function at 80331654 (US v1.01 offset) displays information about them on-screen, presuming the debug flag it checks is set.
The NPCs have 6 states they can be in at any time, which describe the actions they will take on the lane: IDLE, WAIT_PREPARE_LINE, PREPARE, RUN, SEE, and BACK.
To enable this in the US v1.01 release of the game, change the byte at 0x32D717 in the DOL from 00 to 01.
To enable this in the EU v1.01 release of the game, change the byte at 0x32D8E3 in the DOL from 00 to 01.
Debug Menu
| To do: Find the use of each of the menu options |
Bowling has a debug menu; some of the options available on menu may be disabled depending on the current game mode of Bowling.
To enable the debug menu, use the Gecko codes above.
Options
- 試合: Starts the game with the given parameters (Only on Standard).
- ナギタオシ: Starts the game (Power Throws) with the given parameters (Only in Training).
- ゲートチャレンジ: Starts the game (Gate Challenge) with the given parameters (Only in Training).
- トライアル: Starts the game (Trial) with the given parameters (Only in Training).
- デモカメラエディター: Demo camera editor.
- ステージ: Stage, used to force playing on a specified round in any of the training modes (Can be set to 1面から順に or 1-20面から順に).
- モード: Mode, used on the training minigames (Can be set to トライアル (Training) or ゲートチャレンジ (Wii Fitness)).
- プレーヤー数: Number of players, Number of players (Can be set to 1人, 2人, 3人 or 4人), all added players are randomly selected from the saved Miis in the player's console (unless the user has previously selected all the Mii characters before playing). If the user only has one Mii saved on their system, all the players are set the exact same as P1's Mii.
- デバッグモード: Debug mode, (Can be set to 無効 or 有効). When enabled (set to 有効), replays are no longer skipped automatically.
- 強制ステージクリア: Force Stage Clear, Forces perfect stage clears/strikes regardless if any pin is knocked over or not. (Can be set to 無効 or 絶対クリア/絶対ストライク)
- チャレンジの最終面: How many innings it takes before ending the game (Can be set to デフォルト(クリアシーケンスのデバッグ用)or 1-30(クリアシーケンスのデバッグ用)).
- パッドによるカーブ方向判定: Something with using the D-Pad for curve adjustment, unknown. (Can be set to 左 or 右)
- 利き手1P: Dominant hand for player 1, sets the hand type of Player 1 (Can be set to 左 (right-handed) or 右 (left-handed)).
- 利き手2P: Dominant hand for player 2, sets the hand type of Player 2 (Can be set to 左 (right-handed) or 右 (left-handed)).
- 利き手3P: Dominant hand for player 3, sets the hand type of Player 3 (Can be set to 左 (right-handed) or 右 (left-handed)).
- 利き手4P: Dominant hand for player 4, sets the hand type of Player 4 (Can be set to 左 (right-handed) or 右 (left-handed)).
- 絶対スプリット: Absolute split. Setting the option to 有効 will, for each Bowling frame, make the game think that after the first ball the pins will be in a split configuration (i.e. the number representing the score for the first ball will be encircled and every spare would be considered as a split spare), regardless of which pins were knocked down in the first ball.
----------- Crashes the game.
Camera Editor
| To do: If possible, find a way to activate the functionality of the camera editor using an existing function in the game (rather than a Gecko code which has a lot of custom code) |
The fifth option in the menu is a camera editor; however the game doesn't have an interface that allows the player/user/debugger to change between the different cameras. It is only possible to open the camera editor in a minigame; attempting to open the camera editor in the standard main mode of Bowling causes the game to crash.
The following Gecko codes provide the user an interface of switching between different cameras (by using the D-Pad):
| NTSC-J v1.01 | NTSC-U v1.01 | PAL v1.01 | |
|---|---|---|---|
| Gecko Code | C234C174 0000000C 807D000C 80A30030 810D9968 8108001C 81080000 81080018 550607FE 5507FFFE 39200033 7C063851 41A20030 7CA02A15 40A0000C 38A00033 48000010 2C050033 40A10008 38A00000 38000000 900317C4 900317C8 900317CC 90A30030 00000000 |
C234C20C 0000000C 807D000C 80A30030 810D9968 8108001C 81080000 81080018 550607FE 5507FFFE 39200033 7C063851 41A20030 7CA02A15 40A0000C 38A00033 48000010 2C050033 40A10008 38A00000 38000000 900317C4 900317C8 900317CC 90A30030 00000000 |
C234C3D8 0000000C 807D000C 80A30030 810D9968 8108001C 81080000 81080018 550607FE 5507FFFE 39200033 7C063851 41A20030 7CA02A15 40A0000C 38A00033 48000010 2C050033 40A10008 38A00000 38000000 900317C4 900317C8 900317CC 90A30030 00000000 |
















