Version differences: Difference between revisions

From Ukikipedia
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 64: Line 64:
./game/star_select.c
./game/star_select.c


List of version differences:
List of version differences:<br>
Blue = Differences in sound IDs<br>
Green = Understood well and observed in the game OR there are no consequences at all (ex. due to extra unused functions)<br>
Yellow = Almost understood well but not observed in the game OR simple to understand but no consequences have been found yet in the game<br>
Red = The difference leads to a complex chain of events that is opaque and hasn't been deciphered yet and so the consequences haven't been figured out OR directly undeciphered/indecipherable with current level of documentation
 
The color codes aren't hard rules set in stone; generally speaking, if the difference can be directly explained in English, it's a yellow or above
{| class="wikitable"
{| class="wikitable"
! File !! Difference
! File !! Difference
|-
|-
| audio/dac.c || In func_80316928, D_80226D7C is (in the U version) set to 172,320 times what it would be set to in the J version.
| audio/dac.c || style="background-color: #F99" | In func_80316928, D_80226D7C is (in the U version) set to 172,320 times what it would be set to in the J version.
|-
|-
| audio/data.c || D_80332190 has different data in J and U versions.
| audio/data.c || style="background-color: #F99" | D_80332190 has different data in J and U versions.
|-
|-
| audio/dma.c || In func_80317270, osInvalDCache isn't called on the J version.
| audio/dma.c || style="background-color: #F99" | In func_80317270, osInvalDCache isn't called on the J version.
|-
|-
| audio/interface_2.c || 31 separate numeric literals are doubles in J but floats in U.
| audio/interface_2.c || style="background-color: #F99" | 31 separate numeric literals are doubles in J but floats in U.
|-
|-
| audio/interface_2.c || 15 separate numeric literals are different between J and U. One of these changes results in a sound difference in Dialog037 (todo: elaborate)
| audio/interface_2.c || style="background-color: #F99" | 15 separate numeric literals are different between J and U. One of these changes results in a sound difference in Dialog037 (todo: elaborate)
|-
|-
| audio/interface_2.c || D_U_8033323C only exists in the U version.
| audio/interface_2.c || style="background-color: #F99" | D_U_8033323C only exists in the U version. (note: this is apparently unused)
|-
|-
| audio/interface_2.c || The typedefs Arg1T and Arg2T are equivalent to u16 and u8 respectively on J version and s32 (both) on U version.
| audio/interface_2.c || style="background-color: #F99" | The typedefs Arg1T and Arg2T are equivalent to u16 and u8 respectively on J version and s32 (both) on U version.
|-
|-
| audio/interface_2.c || unused_8031E4F0 and unused_8031E568 are remnants of unused debug functions that only exist on U.
| audio/interface_2.c || style="background-color: #9F9" | unused_8031E4F0 and unused_8031E568 are remnants of unused debug functions that only exist on U.
|-
|-
| audio/interface_2.c || In the U version, func_8031D630 has a check that increments its second argument if it's 0. This is because later on in the function, a value is divided by this argument. This check does not exist in the J version.
| audio/interface_2.c || style="background-color: #F99" | In the U version, func_8031D630 has a check that increments its second argument if it's 0. This is because later on in the function, a value is divided by this argument. This check does not exist in the J version.
|-
|-
| audio/interface_2.c ||  
| audio/interface_2.c ||  
Line 108: Line 114:
| audio/interface_2.c ||  
| audio/interface_2.c ||  
|-
|-
| audio/playback.c || 8 separate numeric literals are doubles in J but floats in U.
| audio/playback.c || style="background-color: #F99" | 8 separate numeric literals are doubles in J but floats in U.
|-
|-
| audio/something.c || 6 separate numeric literals are doubles in J but floats in U.  
| audio/something.c || style="background-color: #F99" | 6 separate numeric literals are doubles in J but floats in U.  
|-
|-
| audio/something.c || Potential ASM differences (didn't look for any)
| audio/something.c || style="background-color: #F99" | In the J version, v0 in func_803159EC is initialized to MIN((s32)(arg2 * 127.5), 127) immediately, while in the U version it's set to (s32)(arg2 * 127.5f) & 127 three times, each time right before it's used for something.
|-
|-
| audio/something.c || In the J version, v0 in func_803159EC is initialized to MIN((s32)(arg2 * 127.5), 127) immediately, while in the U version it's set to (s32)(arg2 * 127.5f) & 127 three times, each time right before it's used for something.
| audio/something.c || style="background-color: #F99" | In func_803159EC, arg0->unk<3C/3E> are set to ((u16)(arg1 * <f0/f2>)) & -0x8100 in the J version, but in the U version they're set to (u16)((s32)(arg1 * <f0/f2>)) & -0x8100.
|-
|-
| audio/something.c || In func_803159EC, arg0->unk<3C/3E> are set to ((u16)(arg1 * <f0/f2>)) & -0x8100 in the J version, but in the U version they're set to (u16)((s32)(arg1 * <f0/f2>)) & -0x8100.
| game/behavior_actions.c || style="background-color: #9F9" | music_touch.c.inc is only included in the U version. This probably means the "Music Touch" object doesn't exist on the J version. The only thing the object does is call play_puzzle_jingle the first time Mario enters within 200 units of it. (todo: check if this object is unused)
|-
|-
| game/behavior_actions.c || Only include music_touch.c.inc in US version
| game/behaviors/bbh_tilt_floor.c.inc || style="background-color: #9F9" | (Nim is making a video on this)
|-
|-
| game/behaviors/bbh_tilt_floor.c.inc || (Nim is making a video on this)
| game/behaviors/boo.c.inc || style="background-color: #FFFF90" | In func_802C35C0, when the boo's timer is greater than 30, it has the 0x200 move flag set, and it has o->oBooUnk108 not set to 0, sp1C is set to o->oBooUnk108. It is then incremented in the J version if the object does not have behavior beh_boo_3. This restriction does not exist on the U version.
|-
|-
| game/behaviors/boo.c.inc || In func_802C35C0, when the boo's timer is greater than 30, it has the 0x200 move flag set, and it has o->oBooUnk108 not set to 0, sp1C is set to o->oBooUnk108. It is then incremented in the J version if the object does not have behavior beh_boo_3. This restriction does not exist on the U version.
| game/behaviors/boo.c.inc || style="background-color: #FFFF90" | On the J version, a part of an if statement's condition (in ActionBooGivingStar0) is o->oUnk1AC_S32 >= 5 . On the U version, the debug parameter gDebugInfo[5][0] is added to 5.
|-
|-
| game/behaviors/boo.c.inc || On the J version, a part of an if statement's condition (in ActionBooGivingStar0) is o->oUnk1AC_S32 >= 5 . On the U version, the debug parameter gDebugInfo[5][0] is added to 5.
| game/behaviors/boo.c.inc || style="background-color: #FFFF90" | boo_stop() is called in ActionBooGivingStar4 only on the U version.
|-
|-
| game/behaviors/boo.c.inc || boo_stop() is called in ActionBooGivingStar4 only on the U version.
| game/behaviors/boo.c.inc || style="background-color: #FFFF90" | On the J version, SetSound(0x806AA081,D_803320E0) is called in a certain part of BehSpawnBigBooLoop. In the U version, play_puzzle_jingle() is called instead.
|-
|-
| game/behaviors/boo.c.inc || On the J version, SetSound(0x806AA081,D_803320E0) is called in a certain part of BehSpawnBigBooLoop. In the U version, play_puzzle_jingle() is called instead.
| game/behaviors/bowser.c.inc || style="background-color: #FFFF90" | Bowser's "body anchor"'s InteractType is set to 0x800000 whenever Bowser's action is 4 in the J version. In the U version, it's set to 0x800000 when Bowser's action is 4 and his subaction is not 11; if it is 11, the anchor's InteractType is set to 0.
|-
|-
| game/behaviors/bowser.c.inc || Bowser's "body anchor"'s InteractType is set to 0x800000 whenever Bowser's action is 4 in the J version. In the U version, it's set to 0x800000 when Bowser's action is 4 and his subaction is not 11; if it is 11, the anchor's InteractType is set to 0.
| game/behaviors/bowser.c.inc || style="background-color: #9F9" | In the US version, Bowser checks if he's in a demo to prevent the typical 1/10 chance of dancing.
|-
|-
| game/behaviors/bowser.c.inc || In the US version, Bowser checks if he's in a demo to prevent the typical 1/10 chance of dancing.
| game/behaviors/bowser.c.inc || style="background-color: #FFFF90" | func_u_802B4AF4() is only declared in the U version.
|-
|-
| game/behaviors/bowser.c.inc || func_u_802B4AF4() is only declared in the U version.
| game/behaviors/bowser.c.inc || style="background-color: #FFFF90" | In ActionBowser13, func_u_802B4AF4 is called only in the U version if Bowser's subaction is 1 and "o->oBehParams2ndByte == 2 && o->oUnknownUnkF4_S32 & 0x10000". (todo: can't find where 2nd byte of behavior params is set to 2 for bowser, is this code ever reached?)
|-
|-
| game/behaviors/bowser.c.inc || In ActionBowser13, func_u_802B4AF4 is called only in the U version if Bowser's subaction is 1 and "o->oBehParams2ndByte == 2 && o->oUnknownUnkF4_S32 & 0x10000". (todo: can't find where 2nd byte of behavior params is set to 2 for bowser, is this code ever reached?)
| game/behaviors/bowser.c.inc || style="background-color: #FFFF90" | In ActionBowser2, when Bowser's subaction is 2, func_u_802B4AF4 is called in the U version.
|-
|-
| game/behaviors/bowser.c.inc || In ActionBowser2, when Bowser's subaction is 2, func_u_802B4AF4 is called in the U version.
| game/behaviors/bowser_key.c.inc || style="background-color: #99F" | If bowser key action is 0, plays sound 0x30370081 on J but 0x38378081 on U (todo: check if these are actually different sounds)
|-
|-
| game/behaviors/bowser_key.c.inc || If bowser key action is 0, plays sound 0x30370081 on J but 0x38378081 on U (todo: check if these are actually different sounds)
| game/behaviors/bully.c.inc || style="background-color: #99F" | BullySpawnCoin plays sound 0x30300081 on J but 0x38300081 on U (todo: check if these are actually different sounds)
|-
|-
| game/behaviors/bully.c.inc || BullySpawnCoin plays sound 0x30300081 on J but 0x38300081 on U (todo: check if these are actually different sounds)
| game/behaviors/camera_lakitu.c.inc || style="background-color: #9F9" | The "Lakitu's Message" music clip that plays when Lakitu comes near Mario to explain the camera controls at the start of the game isn't played or doesn't exist on J version.
|-
|-
| game/behaviors/camera_lakitu.c.inc || The "Lakitu's Message" music clip that plays when Lakitu comes near Mario to explain the camera controls at the start of the game doesn't exist on J version.
| game/behaviors/celebration_star.c.inc || style="background-color: #9F9" | When you collect a Bowser key, the cutscene that plays will show a star instead of a key in the J version.
|-
|-
| game/behaviors/celebration_star.c.inc || When you collect a Bowser key, the cutscene that plays will show a star instead of a key in the J version.
| game/behaviors/celebration_star.c.inc || style="background-color: #FFFF90" | On the J version, when a celebration star is turning to face the camera, it is scaled by 1/10 units per frame. On the U version, it checks if it's a key. If it's a key, it scales 1/30 units per frame; if it's the BitS star, it scales 1/10 units per frame. (todo: check if the bits star ever faces the camera)
|-
|-
| game/behaviors/celebration_star.c.inc || On the J version, when a celebration star is turning to face the camera, it is scaled by 1/10 units per frame. On the U version, it checks if it's a key. If it's a key, it scales 1/30 units per frame; if it's the BitS star, it scales 1/10 units per frame. (todo: check if the bits star ever faces the camera)
| game/behaviors/coin.c.inc || style="background-color: #99F" | BehCoinLoop plays sound 0x30300081 on J but 0x38300081 on U when the timer is set to 0 (todo: check if these are actually different sounds)
|-
|-
| game/behaviors/coin.c.inc || BehCoinLoop plays sound 0x30300081 on J but 0x38300081 on U when the timer is set to 0 (todo: check if these are actually different sounds)
| game/behaviors/coin.c.inc || style="background-color: #FFFF90" | On the U version, if the coin has move flags 0x1, 0x800, and 0x4000 set, it will mark itself for deletion. On the J version, the 0x4000 check doesn't exist.
|-
|-
| game/behaviors/coin.c.inc || On the U version, if the coin has move flags 0x1, 0x800, and 0x4000 set, it will mark itself for deletion. On the J version, the 0x4000 check doesn't exist.
| game/behaviors/coin.c.inc || style="background-color: #FFFF90" | On the U version, if the coin has move flag 0x2000 set and has o->oUnk1B0 < 5, it will play a sound (namely, 0x30364081). Then it will increment o->oUnk1B0. On the J version, it will neither check nor increment o->oUnk1B0.
|-
|-
| game/behaviors/coin.c.inc || On the U version, if the coin has move flag 0x2000 set and has o->oUnk1B0 < 5, it will play a sound (namely, 0x30364081). Then it will increment o->oUnk1B0. On the J version, it will not check nor increment o->oUnk1B0.
| game/behaviors/cruiser.c.inc || style="background-color: #9F9" | On the U version, the wings on the RR cruiser will play a sound (namely, 0x30750081) every 64 frames. (It waits for the timer to become 64, then plays the sound and sets it to 0.) On the J version, it won't do any of this.
|-
|-
| game/behaviors/cruiser.c.inc || On the U version, the wings on the RR cruiser will play a sound (namely, 0x30750081) every 64 frames. (It waits for the timer to become 64, then plays the sound and sets it to 0.) On the J version, it won't do any of this.
| game/behaviors/dorrie.c.inc || style="background-color: #FFFF90" | Two if-elseif statements swap places between the J and U versions (todo: elaborate on what effects this has). Also, in the J version, it will raise its head along with Mario if the forward distance to Mario is greater than 830 (i.e. Mario is greater than 830 units away from Dorrie's center) and if set_mario_npc_dialogue returns the expected result indicating a success. In the U version, 830 is changed to 780, and another condition is added: Dorrie's Y offset has to be equal to -17.
|-
|-
| game/behaviors/dorrie.c.inc || Two if-elseif statements swap places between the J and U versions (todo: elaborate on what effects this has). Also, in the J version, it will raise its head along with Mario if the forward distance to Mario is greater than 830 (i.e. Mario is greater than 830 units away from Dorrie's center) and if set_mario_npc_dialogue returns the expected result indicating a success. In the U version, 830 is changed to 780, and another condition is added: Dorrie's Y offset has to be equal to -17.
| game/behaviors/hidden_star.c.inc || style="background-color: #9F9" | As you collect more secrets, the sound played when collecting secrets gets higher in pitch on the U version. It doesn't change on the J version.
|-
|-
| game/behaviors/hidden_star.c.inc || As you collect more secrets, the sound played when collecting secrets gets higher in pitch on the U version. It doesn't change on the J version.
| game/behaviors/king_bobomb.c.inc || style="background-color: #9F9" | In ActionKingBobomb0, King Bob-omb's velocity is only set to 0 in the U version. It is not touched in the J version. This is the cause of [https://t.co/rSZBnhKCAT this glitch.]
|-
|-
| game/behaviors/king_bobomb.c.inc || In ActionKingBobomb0, King Bob-omb's velocity is only set to 0 in the U version. It is not touched in the J version. This is the cause of [https://t.co/rSZBnhKCAT this glitch.]
| game/behaviors/king_bobomb.c.inc || style="background-color: #FFFF90" | When spawning the star in the J version, the invisible defeated King Bob-omb is raised by 100 units and CreateStar is called to spawn the star. In the U version, King Bob-omb is not raised directly but rather through obj_spawn_star_at_y_offset which is called instead of CreateStar. The Y-offset passed into obj_spawn_star_at_y_offset is 200. TODO: Figure out if the star actually spawns ''from'' 100 units higher in U
|-
|-
| game/behaviors/king_bobomb.c.inc || When spawning the star in the J version, the invisible defeated King Bob-omb is raised by 100 units and CreateStar is called to spawn the star. In the U version, King Bob-omb is not raised directly but rather through obj_spawn_star_at_y_offset which is called instead of CreateStar. The Y-offset passed into obj_spawn_star_at_y_offset is 200. TODO: Figure out if the star actually spawns ''from'' 100 units higher in U
| game/behaviors/mips.c.inc || style="background-color: #9F9" | When MIPS has action 1 in the J version, his forward velocity is set to 45. In the U version, it's set to o->oUnk1AC_F32, which is 40 for the 1st MIPS and 45 for the 2nd MIPS. This was probably done to slow him down a bit.
|-
|-
| game/behaviors/mips.c.inc || When MIPS has action 1 in the J version, his forward velocity is set to 45. In the U version, it's set to o->oUnk1AC_F32, which is 40 for the 1st MIPS and 45 for the 2nd MIPS. This was probably done to slow him down a bit.
| game/behaviors/mips.c.inc || style="background-color: #9F9" | In the J version, MIPS' gravity is 2.5. In the U version, it's 15.
|-
|-
| game/behaviors/mips.c.inc || In the J version, MIPS' gravity is 2.5. In the U version, it's 15.
| game/behaviors/moneybag.c.inc || style="background-color: #9F9" | When turning invisible, moneybags make a sound (namely, 0x30762081) in U but not in J.
|-
|-
| game/behaviors/moneybag.c.inc || When turning invisible, moneybags make a sound (namely, 0x30762081) in U but not in J.
| game/behaviors/mr_i.c.inc || style="background-color: #FFFF90" | In ActionMrI0, the Mr. I will set its MoveAngle's to 0 on the J version. On the U version, it calls set_object_angle(o, 0, 0, 0), which sets both its FaceAngle's and MoveAngle's to 0.
|-
|-
| game/behaviors/mr_i.c.inc || In ActionMrI0, the Mr. I will set its MoveAngle's to 0 on the J version. On the U version, it calls set_object_angle(o, 0, 0, 0), which sets both its FaceAngle's and MoveAngle's to 0.
| game/behaviors/piranha_plant.c.inc || style="background-color: #FFFF90" | In ActionPiranhaPlant20, the piranha plant's size is set back to normal only on the U version.
|-
|-
| game/behaviors/piranha_plant.c.inc || In ActionPiranhaPlant20, the piranha plant's size is set back to normal only on the U version.
| game/behaviors/piranha_plant.c.inc || style="background-color: #FFFF90" | In ActionPiranhaPlant21, o->oDamageOrCoinValue is set to 0 only on the U version.
|-
|-
| game/behaviors/piranha_plant.c.inc || In ActionPiranhaPlant21, o->oDamageOrCoinValue is set to 0 only on the U version.
| game/behaviors/piranha_plant.c.inc || style="background-color: #FFFF90" | In ActionPiranhaPlant23, o->oDamageOrCoinValue is set to 3 only on the U version.
|-
|-
| game/behaviors/piranha_plant.c.inc || In ActionPiranhaPlant23, o->oDamageOrCoinValue is set to 3 only on the U version.
| game/behaviors/piranha_plant.c.inc || style="background-color: #FFFF90" | func_u_802BE0B8 is only declared in the U version. It sets the piranha plant's action to 0 if it has active flag 0x2 set.
|-
|-
| game/behaviors/piranha_plant.c.inc || func_u_802BE0B8 is only declared in the U version. It sets the piranha plant's action to 0 if it has active flag 0x2 set.
| game/behaviors/piranha_plant.c.inc || style="background-color: #FFFF90" | In ActionPiranhaPlant25, func_u_802BE0B8 is called only on the U version.
|-
|-
| game/behaviors/piranha_plant.c.inc || In ActionPiranhaPlant25, func_u_802BE0B8 is called only on the U version.
| game/behaviors/piranha_plant.c.inc || style="background-color: #FFFF90" | In ActionPiranhaPlant26, func_u_802BE0B8 is called only on the U version.
|-
|-
| game/behaviors/piranha_plant.c.inc || In ActionPiranhaPlant26, func_u_802BE0B8 is called only on the U version.
| game/behaviors/racing_penguin.c.inc || style="background-color: #FFFF90" | When the penguin is turning to face Mario at the end of the race (todo: confirm this), func_802BE3B4(1) is called but only on the U version.
|-
|-
| game/behaviors/racing_penguin.c.inc || When the penguin is turning to face Mario at the end of the race (todo: confirm this), func_802BE3B4(1) is called but only on the U version.
| game/behaviors/racing_penguin.c.inc || style="background-color: #FFFF90" | On the U version, obj_spawn_star_at_y_offset is used to spawn the star instead of CreateStar. (todo: check if there are star height differences)
|-
|-
| game/behaviors/racing_penguin.c.inc || On the U version, obj_spawn_star_at_y_offset is used to spawn the star instead of CreateStar. (todo: check if there are star height differences)
| game/behaviors/red_coin.c.inc || style="background-color: #9F9" | As you collect more red coins, the sound played when collecting secrets gets higher in pitch on the U version. It doesn't change on the J version.
|-
|-
| game/behaviors/red_coin.c.inc || As you collect more red coins, the sound played when collecting secrets gets higher in pitch on the U version. It doesn't change on the J version.
| game/behaviors/sparkle_spawn_star.c.inc || style="background-color: #FFFF90" | In BehUnused080CLoop, when the object's action is 0, its Y-velocity is negative, it's under its home, and the bitmask o->oUnk190 has flag 0x400 set, the object will call func_803212A0(0) in the J version and func_803212A0(1) in the U version.
|-
|-
| game/behaviors/sparkle_spawn_star.c.inc || In BehUnused080CLoop, when the object's action is 0, its Y-velocity is negative, it's under its home, and the bitmask o->oUnk190 has flag 0x400 set, the object will call func_803212A0(0) in the J version and func_803212A0(1) in the U version.
| game/behaviors/tox_box.c.inc || style="background-color: #99F" | When slamming into the ground, the tox box plays sound 0x30460081 on the J version, and 0x30468081 on the U version. (todo: check if these are different sounds)
|-
|-
| game/behaviors/tox_box.c.inc || When slamming into the ground, the tox box plays sound 0x30460081 on the J version, and 0x30468081 on the U version.
| game/behaviors/tuxie.c.inc || style="background-color: #9F9" | The Mother Penguin will spawn the star in a completely different location in the U version than in the J version.
|-
|-
| game/behaviors/tuxie.c.inc || The Mother Penguin will spawn the star in a completely different location in the U version than in the J version.
| game/behaviors/tuxie.c.inc || style="background-color: #FFFF90" | The baby penguin's crying sound plays relative to Mario in the U version, but relative to the penguin in the J version. (todo: see if this difference can be heard or noticed through handsfree teleport)
|-
|-
| game/behaviors/tuxie.c.inc || The baby penguin's crying sound plays relative to Mario in the U version, but relative to the penguin in the J version. (todo: see if this difference can be heard or noticed through handsfree teleport)
| game/behaviors/water_ring.c.inc || style="background-color: #9F9" | As you go through more water rings, the sound played when collecting secrets gets higher in pitch on the U version. It doesn't change on the J version.
|-
|-
| game/behaviors/water_ring.c.inc || As you go through more water rings, the sound played when collecting secrets gets higher in pitch on the U version. It doesn't change on the J version.
| game/camera.c || style="background-color: #F99" | When func_80286C9C is called while in BitDW (todo: clarify, is this the entire level including the boss fight or just the boss fight?), func_8028BB3C(a, 144) will be called on the J version. On the U version, func_8028BB3C(a, 144) will be called if the demo is not being run; if it is, and the camera's secondary focus is set on an object, that object will have the first byte of its rawData set to 2.
|-
|-
| game/camera.c || When func_80286C9C is called while in BitDW (todo: clarify, is this the entire level including the boss fight or just the boss fight?), func_8028BB3C(a, 144) will be called on the J version. On the U version, func_8028BB3C(a, 144) will be called if the demo is not being run; if it is, and the camera's secondary focus is set on an object, that object will have the first byte of its rawData set to 2.
| game/camera.c || style="background-color: #FFFF90" | In func_8028B3DC, under some circumstances the sound that normally plays when you press C-Down will not play on J, but will on U. (todo: document camera)
|-
|-
| game/camera.c || In func_8028B3DC, under some circumstances the sound that normally plays when you press C-Down will not play on J, but will on U. (todo: document camera)
| game/camera.c || style="background-color: #FFFF90" | In func_8028B7A4, under some circumstances the sound that normally plays when you press C-Down will not play on J, but will on U. (todo: document camera)
|-
|-
| game/camera.c || In func_8028B7A4, under some circumstances the sound that normally plays when you press C-Down will not play on J, but will on U. (todo: document camera)
| game/camera.c || style="background-color: #F99" | In CameraHMC00() in the U version, when a->unk10[1] > -102.f, a->unk10[1] and D_8033B328.unk0[1][1] will both be set to D_8033B328.unk0[3][1]. In the J version, these values are not set.
|-
|-
| game/camera.c || In CameraHMC00 in the U version, when a->unk10[1] > -102.f, a->unk10[1] and D_8033B328.unk0[1][1] will both be set to D_8033B328.unk0[3][1]. In the J version, these values are not set.
| game/camera.c || style="background-color: #F99" | CutsceneIntroPeach0_2 will run func_8031FFB4(0, 60, 40) on the U version but not on the J version. (todo: check what this actually is)
|-
|-
| game/camera.c || CutsceneIntroPeach0_2 will run func_8031FFB4(0, 60, 40) on the U version but not on the J version. (todo: check what this actually is)
| game/camera.c || style="background-color: #F99" | CutsceneIntroPeach2_1 will run func_80320040(0, 60) on the U version but not on the J version (todo: check what this actually is)
|-
|-
| game/camera.c || CutsceneIntroPeach2_1 will run func_80320040(0, 60) on the U version but not on the J version (todo: check what this actually is)
| game/camera.c || style="background-color: #F99" | On the U version, if the camera preset is set to CAMERA_PRESET_BOWSER_FIGHT, a->unk4 will be copied into D_8033B4B8.unkC and a->unk10 will be copied into D_8033B4B8.unk0. If the camera preset isn't set to CAMERA_PRESET_BOWSER_FIGHT, func_80290224 will be run instead. On the J version, the if statement doesn't exist, and only func_80290224 is run every time.
|-
|-
| game/camera.c || On the U version, if the camera preset is set to CAMERA_PRESET_BOWSER_FIGHT, a->unk4 will be copied into D_8033B4B8.unkC and a->unk10 will be copied into D_8033B4B8.unk0. If the camera preset isn't set to CAMERA_PRESET_BOWSER_FIGHT, func_80290224 will be run instead. On the J version, the if statement doesn't exist, and only func_80290224 is run every time.
| game/camera.c || style="background-color: #FFFF90" | CutsceneIntroPeach0_4 is not declared in the J version. Its code consists of a single call to SetSound with sound 0x2428FF81. This is probably Peach's voice clip in the intro. (todo: confirm/deny this)
|-
|-
| game/camera.c || CutsceneIntroPeach0_4 is not declared in the J version. Its code consists of a single call to SetSound with sound 0x2428FF81. This is probably Peach's voice clip in the intro. (todo: confirm/deny this)
| game/camera.c || style="background-color: #FFFF90" | CutsceneIntroPeach2_3 is not declared in the J version. Its code consists of a single call to func_8028B338, which consists of a single call to SetSound with sound 0x701A8081. (todo: see what sound this is)
|-
|-
| game/camera.c || CutsceneIntroPeach2_3 is not declared in the J version. Its code consists of a single call to func_8028B338, which consists of a single call to SetSound with sound 0x701A8081. (todo: see what sound this is)
| game/camera.c || style="background-color: #FFFF90" | CutsceneIntroPeach2_3 is only called in the U version.
|-
|-
| game/camera.c || CutsceneIntroPeach2_3 is only called in the U version.
| game/camera.c || style="background-color: #FFFF90" | CutsceneIntroPeach0_4 is only called in the U version.
|-
|-
| game/camera.c || CutsceneIntroPeach0_4 is only called in the U version.
| game/camera.c || style="background-color: #FFFF90" | In BehBeginningLakituLoop in the U version only, when the camera lakitu is in action 1 and its timer reaches 534 and 581, the sounds 0x04568081 and 0x045E8081 are played (respectively).
|-
|-
| game/camera.c || In BehBeginningLakituLoop in the U version, when the camera lakitu is in action 1 and its timer reaches 534 and 581, the sounds 0x04568081 and 0x045E8081 are played (respectively).
| game/camera.c || style="background-color: #FFFF90" | In BehBeginningLakituLoop in the U version, when the camera lakitu is in action 3 and its timer reaches 14, the sound 0x045F8081 is played.
|-
|-
| game/camera.c || In BehBeginningLakituLoop in the U version, when the camera lakitu is in action 3 and its timer reaches 14, the sound 0x045F8081 is played.
| game/file_select.c || style="background-color: #9F9" | sSoundTextX is not declared in the J version.
|-
|-
| game/file_select.c || sSoundTextX is not declared in the J version.
| game/file_select.c || style="background-color: #9F9" | The sound clip that plays when you select a file in the file select has Mario saying "Okey Dokey!" in the U version.
|-
|-
| game/file_select.c || The sound clip that plays when you select a file in the file select has Mario saying "Okey Dokey!" in the U version.
| game/file_select.c || style="background-color: #9F9" | The "Select File" text has a different font and is in a slightly different position in the U version. (todo: confirm this)
|-
|-
| game/file_select.c || The "Select File" text has a different font and is in a slightly different position in the U version.
| game/file_select.c || style="background-color: #9F9" | In the U version, sSoundTextX is used to center the name of the current sound setting on the main file select. In the J version, it remains uncentered. (todo: confirm this)
|-
|-
| game/file_select.c || In the U version, sSoundTextX is used to center the name of the current sound setting on the main file select. In the J version, it remains uncentered. (todo: confirm this)
| game/file_select.c || style="background-color: #9F9" | The "Check File" text in the score menu has a different font and is in a slightly different position in the U version.
|-
|-
| game/file_select.c || The "Check File" text in the score menu has a different font and is in a slightly different position in the U version.
| game/file_select.c || style="background-color: #9F9" | The "Return", "Copy", and "Erase" texts in the score menu are in a slightly different position in the U version.
|-
|-
| game/file_select.c || The "Return", "Copy", and "Erase" texts in the score menu are in a slightly different position in the U version.
| game/file_select.c || style="background-color: #9F9" | All the text in messages that appear when copying a file have a different font and are in a slightly different position in the U version.
|-
|-
| game/file_select.c || All the text in messages that appear when copying a file have a different font and are in a slightly different position in the U version.
| game/file_select.c || style="background-color: #9F9" | The "Return", "View Score", and "Erase" texts in the copy menu are in a slightly different position in the U version.
|-
| game/file_select.c || The "Return", "View Score", and "Erase" texts in the copy menu are in a slightly different position in the U version.
|-
|-
| game/file_select.c ||  
| game/file_select.c ||  

Revision as of 20:38, 28 March 2019

This page only covers version differences in the game's source code, not things like changes to level geometry It also only covers differences between the original Japanese N64 version (J version) and the next-released NTSC-U version (U version)

Files with version differences (52 files):

Audio (6 files):
./audio/dac.c
./audio/data.c
./audio/dma.c
./audio/interface_2.c
./audio/playback.c
./audio/something.c

Behavior (23 files):
./game/behavior_actions.c
./game/behaviors/bbh_tilt_floor.c.inc
./game/behaviors/boo.c.inc
./game/behaviors/bowser.c.inc
./game/behaviors/bowser_key.c.inc
./game/behaviors/bully.c.inc
./game/behaviors/camera_lakitu.c.inc
./game/behaviors/celebration_star.c.inc
./game/behaviors/coin.c.inc
./game/behaviors/cruiser.c.inc
./game/behaviors/dorrie.c.inc
./game/behaviors/hidden_star.c.inc
./game/behaviors/king_bobomb.c.inc
./game/behaviors/mips.c.inc
./game/behaviors/moneybag.c.inc
./game/behaviors/mr_i.c.inc
./game/behaviors/piranha_plant.c.inc
./game/behaviors/racing_penguin.c.inc
./game/behaviors/red_coin.c.inc
./game/behaviors/sparkle_spawn_star.c.inc
./game/behaviors/tox_box.c.inc
./game/behaviors/tuxie.c.inc
./game/behaviors/water_ring.c.inc

Mario (8 files):
./game/mario.c
./game/mario_actions_airborne.c
./game/mario_actions_automatic.c
./game/mario_actions_cutscene.c
./game/mario_actions_moving.c
./game/mario_actions_object.c
./game/mario_actions_stationary.c
./game/mario_step.c

Other (15 files):
./game/camera.c
./game/file_select.c
./game/hud.c
./game/ingame_menu.c
./game/ingame_menu.h
./game/interaction.c
./game/level_select_menu.c
./game/level_update.c
./game/main.c
./game/object_helpers.c
./game/object_helpers2.h
./game/object_list_processor.c
./game/platform_displacement.c
./game/platform_displacement.h
./game/star_select.c

List of version differences:
Blue = Differences in sound IDs
Green = Understood well and observed in the game OR there are no consequences at all (ex. due to extra unused functions)
Yellow = Almost understood well but not observed in the game OR simple to understand but no consequences have been found yet in the game
Red = The difference leads to a complex chain of events that is opaque and hasn't been deciphered yet and so the consequences haven't been figured out OR directly undeciphered/indecipherable with current level of documentation

The color codes aren't hard rules set in stone; generally speaking, if the difference can be directly explained in English, it's a yellow or above

File Difference
audio/dac.c In func_80316928, D_80226D7C is (in the U version) set to 172,320 times what it would be set to in the J version.
audio/data.c D_80332190 has different data in J and U versions.
audio/dma.c In func_80317270, osInvalDCache isn't called on the J version.
audio/interface_2.c 31 separate numeric literals are doubles in J but floats in U.
audio/interface_2.c 15 separate numeric literals are different between J and U. One of these changes results in a sound difference in Dialog037 (todo: elaborate)
audio/interface_2.c D_U_8033323C only exists in the U version. (note: this is apparently unused)
audio/interface_2.c The typedefs Arg1T and Arg2T are equivalent to u16 and u8 respectively on J version and s32 (both) on U version.
audio/interface_2.c unused_8031E4F0 and unused_8031E568 are remnants of unused debug functions that only exist on U.
audio/interface_2.c In the U version, func_8031D630 has a check that increments its second argument if it's 0. This is because later on in the function, a value is divided by this argument. This check does not exist in the J version.
audio/interface_2.c
audio/interface_2.c
audio/interface_2.c
audio/interface_2.c
audio/interface_2.c
audio/interface_2.c
audio/interface_2.c
audio/interface_2.c
audio/interface_2.c
audio/interface_2.c
audio/interface_2.c
audio/playback.c 8 separate numeric literals are doubles in J but floats in U.
audio/something.c 6 separate numeric literals are doubles in J but floats in U.
audio/something.c In the J version, v0 in func_803159EC is initialized to MIN((s32)(arg2 * 127.5), 127) immediately, while in the U version it's set to (s32)(arg2 * 127.5f) & 127 three times, each time right before it's used for something.
audio/something.c In func_803159EC, arg0->unk<3C/3E> are set to ((u16)(arg1 * <f0/f2>)) & -0x8100 in the J version, but in the U version they're set to (u16)((s32)(arg1 * <f0/f2>)) & -0x8100.
game/behavior_actions.c music_touch.c.inc is only included in the U version. This probably means the "Music Touch" object doesn't exist on the J version. The only thing the object does is call play_puzzle_jingle the first time Mario enters within 200 units of it. (todo: check if this object is unused)
game/behaviors/bbh_tilt_floor.c.inc (Nim is making a video on this)
game/behaviors/boo.c.inc In func_802C35C0, when the boo's timer is greater than 30, it has the 0x200 move flag set, and it has o->oBooUnk108 not set to 0, sp1C is set to o->oBooUnk108. It is then incremented in the J version if the object does not have behavior beh_boo_3. This restriction does not exist on the U version.
game/behaviors/boo.c.inc On the J version, a part of an if statement's condition (in ActionBooGivingStar0) is o->oUnk1AC_S32 >= 5 . On the U version, the debug parameter gDebugInfo[5][0] is added to 5.
game/behaviors/boo.c.inc boo_stop() is called in ActionBooGivingStar4 only on the U version.
game/behaviors/boo.c.inc On the J version, SetSound(0x806AA081,D_803320E0) is called in a certain part of BehSpawnBigBooLoop. In the U version, play_puzzle_jingle() is called instead.
game/behaviors/bowser.c.inc Bowser's "body anchor"'s InteractType is set to 0x800000 whenever Bowser's action is 4 in the J version. In the U version, it's set to 0x800000 when Bowser's action is 4 and his subaction is not 11; if it is 11, the anchor's InteractType is set to 0.
game/behaviors/bowser.c.inc In the US version, Bowser checks if he's in a demo to prevent the typical 1/10 chance of dancing.
game/behaviors/bowser.c.inc func_u_802B4AF4() is only declared in the U version.
game/behaviors/bowser.c.inc In ActionBowser13, func_u_802B4AF4 is called only in the U version if Bowser's subaction is 1 and "o->oBehParams2ndByte == 2 && o->oUnknownUnkF4_S32 & 0x10000". (todo: can't find where 2nd byte of behavior params is set to 2 for bowser, is this code ever reached?)
game/behaviors/bowser.c.inc In ActionBowser2, when Bowser's subaction is 2, func_u_802B4AF4 is called in the U version.
game/behaviors/bowser_key.c.inc If bowser key action is 0, plays sound 0x30370081 on J but 0x38378081 on U (todo: check if these are actually different sounds)
game/behaviors/bully.c.inc BullySpawnCoin plays sound 0x30300081 on J but 0x38300081 on U (todo: check if these are actually different sounds)
game/behaviors/camera_lakitu.c.inc The "Lakitu's Message" music clip that plays when Lakitu comes near Mario to explain the camera controls at the start of the game isn't played or doesn't exist on J version.
game/behaviors/celebration_star.c.inc When you collect a Bowser key, the cutscene that plays will show a star instead of a key in the J version.
game/behaviors/celebration_star.c.inc On the J version, when a celebration star is turning to face the camera, it is scaled by 1/10 units per frame. On the U version, it checks if it's a key. If it's a key, it scales 1/30 units per frame; if it's the BitS star, it scales 1/10 units per frame. (todo: check if the bits star ever faces the camera)
game/behaviors/coin.c.inc BehCoinLoop plays sound 0x30300081 on J but 0x38300081 on U when the timer is set to 0 (todo: check if these are actually different sounds)
game/behaviors/coin.c.inc On the U version, if the coin has move flags 0x1, 0x800, and 0x4000 set, it will mark itself for deletion. On the J version, the 0x4000 check doesn't exist.
game/behaviors/coin.c.inc On the U version, if the coin has move flag 0x2000 set and has o->oUnk1B0 < 5, it will play a sound (namely, 0x30364081). Then it will increment o->oUnk1B0. On the J version, it will neither check nor increment o->oUnk1B0.
game/behaviors/cruiser.c.inc On the U version, the wings on the RR cruiser will play a sound (namely, 0x30750081) every 64 frames. (It waits for the timer to become 64, then plays the sound and sets it to 0.) On the J version, it won't do any of this.
game/behaviors/dorrie.c.inc Two if-elseif statements swap places between the J and U versions (todo: elaborate on what effects this has). Also, in the J version, it will raise its head along with Mario if the forward distance to Mario is greater than 830 (i.e. Mario is greater than 830 units away from Dorrie's center) and if set_mario_npc_dialogue returns the expected result indicating a success. In the U version, 830 is changed to 780, and another condition is added: Dorrie's Y offset has to be equal to -17.
game/behaviors/hidden_star.c.inc As you collect more secrets, the sound played when collecting secrets gets higher in pitch on the U version. It doesn't change on the J version.
game/behaviors/king_bobomb.c.inc In ActionKingBobomb0, King Bob-omb's velocity is only set to 0 in the U version. It is not touched in the J version. This is the cause of this glitch.
game/behaviors/king_bobomb.c.inc When spawning the star in the J version, the invisible defeated King Bob-omb is raised by 100 units and CreateStar is called to spawn the star. In the U version, King Bob-omb is not raised directly but rather through obj_spawn_star_at_y_offset which is called instead of CreateStar. The Y-offset passed into obj_spawn_star_at_y_offset is 200. TODO: Figure out if the star actually spawns from 100 units higher in U
game/behaviors/mips.c.inc When MIPS has action 1 in the J version, his forward velocity is set to 45. In the U version, it's set to o->oUnk1AC_F32, which is 40 for the 1st MIPS and 45 for the 2nd MIPS. This was probably done to slow him down a bit.
game/behaviors/mips.c.inc In the J version, MIPS' gravity is 2.5. In the U version, it's 15.
game/behaviors/moneybag.c.inc When turning invisible, moneybags make a sound (namely, 0x30762081) in U but not in J.
game/behaviors/mr_i.c.inc In ActionMrI0, the Mr. I will set its MoveAngle's to 0 on the J version. On the U version, it calls set_object_angle(o, 0, 0, 0), which sets both its FaceAngle's and MoveAngle's to 0.
game/behaviors/piranha_plant.c.inc In ActionPiranhaPlant20, the piranha plant's size is set back to normal only on the U version.
game/behaviors/piranha_plant.c.inc In ActionPiranhaPlant21, o->oDamageOrCoinValue is set to 0 only on the U version.
game/behaviors/piranha_plant.c.inc In ActionPiranhaPlant23, o->oDamageOrCoinValue is set to 3 only on the U version.
game/behaviors/piranha_plant.c.inc func_u_802BE0B8 is only declared in the U version. It sets the piranha plant's action to 0 if it has active flag 0x2 set.
game/behaviors/piranha_plant.c.inc In ActionPiranhaPlant25, func_u_802BE0B8 is called only on the U version.
game/behaviors/piranha_plant.c.inc In ActionPiranhaPlant26, func_u_802BE0B8 is called only on the U version.
game/behaviors/racing_penguin.c.inc When the penguin is turning to face Mario at the end of the race (todo: confirm this), func_802BE3B4(1) is called but only on the U version.
game/behaviors/racing_penguin.c.inc On the U version, obj_spawn_star_at_y_offset is used to spawn the star instead of CreateStar. (todo: check if there are star height differences)
game/behaviors/red_coin.c.inc As you collect more red coins, the sound played when collecting secrets gets higher in pitch on the U version. It doesn't change on the J version.
game/behaviors/sparkle_spawn_star.c.inc In BehUnused080CLoop, when the object's action is 0, its Y-velocity is negative, it's under its home, and the bitmask o->oUnk190 has flag 0x400 set, the object will call func_803212A0(0) in the J version and func_803212A0(1) in the U version.
game/behaviors/tox_box.c.inc When slamming into the ground, the tox box plays sound 0x30460081 on the J version, and 0x30468081 on the U version. (todo: check if these are different sounds)
game/behaviors/tuxie.c.inc The Mother Penguin will spawn the star in a completely different location in the U version than in the J version.
game/behaviors/tuxie.c.inc The baby penguin's crying sound plays relative to Mario in the U version, but relative to the penguin in the J version. (todo: see if this difference can be heard or noticed through handsfree teleport)
game/behaviors/water_ring.c.inc As you go through more water rings, the sound played when collecting secrets gets higher in pitch on the U version. It doesn't change on the J version.
game/camera.c When func_80286C9C is called while in BitDW (todo: clarify, is this the entire level including the boss fight or just the boss fight?), func_8028BB3C(a, 144) will be called on the J version. On the U version, func_8028BB3C(a, 144) will be called if the demo is not being run; if it is, and the camera's secondary focus is set on an object, that object will have the first byte of its rawData set to 2.
game/camera.c In func_8028B3DC, under some circumstances the sound that normally plays when you press C-Down will not play on J, but will on U. (todo: document camera)
game/camera.c In func_8028B7A4, under some circumstances the sound that normally plays when you press C-Down will not play on J, but will on U. (todo: document camera)
game/camera.c In CameraHMC00() in the U version, when a->unk10[1] > -102.f, a->unk10[1] and D_8033B328.unk0[1][1] will both be set to D_8033B328.unk0[3][1]. In the J version, these values are not set.
game/camera.c CutsceneIntroPeach0_2 will run func_8031FFB4(0, 60, 40) on the U version but not on the J version. (todo: check what this actually is)
game/camera.c CutsceneIntroPeach2_1 will run func_80320040(0, 60) on the U version but not on the J version (todo: check what this actually is)
game/camera.c On the U version, if the camera preset is set to CAMERA_PRESET_BOWSER_FIGHT, a->unk4 will be copied into D_8033B4B8.unkC and a->unk10 will be copied into D_8033B4B8.unk0. If the camera preset isn't set to CAMERA_PRESET_BOWSER_FIGHT, func_80290224 will be run instead. On the J version, the if statement doesn't exist, and only func_80290224 is run every time.
game/camera.c CutsceneIntroPeach0_4 is not declared in the J version. Its code consists of a single call to SetSound with sound 0x2428FF81. This is probably Peach's voice clip in the intro. (todo: confirm/deny this)
game/camera.c CutsceneIntroPeach2_3 is not declared in the J version. Its code consists of a single call to func_8028B338, which consists of a single call to SetSound with sound 0x701A8081. (todo: see what sound this is)
game/camera.c CutsceneIntroPeach2_3 is only called in the U version.
game/camera.c CutsceneIntroPeach0_4 is only called in the U version.
game/camera.c In BehBeginningLakituLoop in the U version only, when the camera lakitu is in action 1 and its timer reaches 534 and 581, the sounds 0x04568081 and 0x045E8081 are played (respectively).
game/camera.c In BehBeginningLakituLoop in the U version, when the camera lakitu is in action 3 and its timer reaches 14, the sound 0x045F8081 is played.
game/file_select.c sSoundTextX is not declared in the J version.
game/file_select.c The sound clip that plays when you select a file in the file select has Mario saying "Okey Dokey!" in the U version.
game/file_select.c The "Select File" text has a different font and is in a slightly different position in the U version. (todo: confirm this)
game/file_select.c In the U version, sSoundTextX is used to center the name of the current sound setting on the main file select. In the J version, it remains uncentered. (todo: confirm this)
game/file_select.c The "Check File" text in the score menu has a different font and is in a slightly different position in the U version.
game/file_select.c The "Return", "Copy", and "Erase" texts in the score menu are in a slightly different position in the U version.
game/file_select.c All the text in messages that appear when copying a file have a different font and are in a slightly different position in the U version.
game/file_select.c The "Return", "View Score", and "Erase" texts in the copy menu are in a slightly different position in the U version.
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/file_select.c
game/hud.c
game/hud.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.c
game/ingame_menu.h
game/interaction.c
game/interaction.c
game/interaction.c
game/interaction.c
game/interaction.c
game/level_select_menu.c
game/level_select_menu.c
game/level_select_menu.c
game/level_select_menu.c
game/level_select_menu.c
game/level_update.c
game/level_update.c
game/level_update.c
game/level_update.c
game/level_update.c
game/main.c
game/main.c
game/mario.c
game/mario.c
game/mario.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_airborne.c
game/mario_actions_automatic.c
game/mario_actions_automatic.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_cutscene.c
game/mario_actions_moving.c
game/mario_actions_moving.c
game/mario_actions_moving.c
game/mario_actions_object.c
game/mario_actions_stationary.c
game/mario_actions_stationary.c
game/mario_actions_stationary.c
game/mario_actions_stationary.c
game/mario_actions_stationary.c
game/mario_actions_stationary.c
game/mario_actions_stationary.c
game/mario_actions_stationary.c
game/mario_step.c
game/mario_step.c
game/object_helpers.c
game/object_helpers.c
game/object_helpers.c
game/object_helpers.c
game/object_helpers.c
game/object_helpers.c
game/object_helpers2.h
game/object_list_processor.c
game/platform_displacement.c
game/platform_displacement.h
game/star_select.c
game/star_select.c
game/star_select.c