Version differences: Difference between revisions

renamed .c.inc to .inc.c
(thanks quate! behaviors/piranha_plant)
(renamed .c.inc to .inc.c)
Line 70: Line 70:
| game/behavior_actions.c || style="background-color: #9F9" | music_touch.inc.c is only included in the U version. This means the "Music Touch" object doesn't exist on the J version. The only thing the object does is play the "Correct Solution" jingle the first time Mario enters within 200 units of it. This object is only used once in the game, to play the puzzle jingle when Mario enters the shortcut in the CCM slide.
| game/behavior_actions.c || style="background-color: #9F9" | music_touch.inc.c is only included in the U version. This means the "Music Touch" object doesn't exist on the J version. The only thing the object does is play the "Correct Solution" jingle the first time Mario enters within 200 units of it. This object is only used once in the game, to play the puzzle jingle when Mario enters the shortcut in the CCM slide.
|-
|-
| game/behaviors/bbh_tilt_floor.c.inc || style="background-color: #9F9" | (Nim is making a video on this)
| game/behaviors/bbh_tilt_floor.inc.c || style="background-color: #9F9" | (Nim is making a video on this)
|-
|-
| game/behaviors/boo.c.inc || style="background-color: #9F9" | In [[Go on a Ghost Hunt]], there is a single boo upstairs which spawns in the Eye-to-Eye Secret Room. The premise of the star is that you must kill all of the boos, but since you aren't intended to go upstairs in that star the boo upstairs shouldn't count. Mario is required to kill 5 boos. In the U version, a check was added to make sure that killing the upstairs boo doesn't contribute to spawning the Big Boo. In the J version, you can kill 4 boos downstairs and 1 boo upstairs in any order and the Big Boo will spawn. If you kill the upstairs boo last, the text that normally appears when unlocking the Big Boo doesn't appear, nor does the "Correct Solution" jingle play.
| game/behaviors/boo.inc.c || style="background-color: #9F9" | In [[Go on a Ghost Hunt]], there is a single boo upstairs which spawns in the Eye-to-Eye Secret Room. The premise of the star is that you must kill all of the boos, but since you aren't intended to go upstairs in that star the boo upstairs shouldn't count. Mario is required to kill 5 boos. In the U version, a check was added to make sure that killing the upstairs boo doesn't contribute to spawning the Big Boo. In the J version, you can kill 4 boos downstairs and 1 boo upstairs in any order and the Big Boo will spawn. If you kill the upstairs boo last, the text that normally appears when unlocking the Big Boo doesn't appear, nor does the "Correct Solution" jingle play.
|-
|-
| game/behaviors/boo.c.inc || style="background-color: #FFFF90" | In 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.inc.c || style="background-color: #FFFF90" | In 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.inc.c || style="background-color: #FFFF90" | boo_stop() is called in ActionBooGivingStar4 only on the U version.
|-
|-
| game/behaviors/boo.c.inc || style="background-color: #9F9" | On the J version, the sound played when opening a chest is also played when the Merry-Go-Round Big Boo is spawned. In the U version, the standard "Correct Solution" jingle is called instead. The difference between the 2 sounds is shown in [https://youtu.be/eu9f6QEoLCU this video.]
| game/behaviors/boo.inc.c || style="background-color: #9F9" | On the J version, the sound played when opening a chest is also played when the Merry-Go-Round Big Boo is spawned. In the U version, the standard "Correct Solution" jingle is called instead. The difference between the 2 sounds is shown in [https://youtu.be/eu9f6QEoLCU this video.]
|-
|-
| game/behaviors/bowser.c.inc || style="background-color: #F99" | 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.inc.c || style="background-color: #F99" | 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.inc.c || 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 || style="background-color: #FFFF90" | func_u_802B4AF4() is only declared in the U version.
| game/behaviors/bowser.inc.c || style="background-color: #FFFF90" | 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.inc.c || 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 || style="background-color: #FFFF90" | In ActionBowser2, when Bowser's subaction is 2, func_u_802B4AF4 is called in the U version.
| game/behaviors/bowser.inc.c || style="background-color: #FFFF90" | 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: #FFFF90" | The sound of a Bowser key bouncing has higher priority in the U version, probably to stop it getting overriden by other sounds. It also has a flag set on the U version which seems to indicate that the sound is affected by the camera's distance to the key somehow.
| game/behaviors/bowser_key.inc.c || style="background-color: #FFFF90" | The sound of a Bowser key bouncing has higher priority in the U version, probably to stop it getting overriden by other sounds. It also has a flag set on the U version which seems to indicate that the sound is affected by the camera's distance to the key somehow.
|-
|-
| game/behaviors/bully.c.inc || style="background-color: #FFFF90" | The sound a bully makes when it spawns a coin after being killed in the U version has a flag set which seems to indicate that the sound is affected by the camera's distance to the bully somehow.
| game/behaviors/bully.inc.c || style="background-color: #FFFF90" | The sound a bully makes when it spawns a coin after being killed in the U version has a flag set which seems to indicate that the sound is affected by the camera's distance to the bully somehow.
|-
|-
| 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.inc.c || 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/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.inc.c || 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 || 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 Grand Star, it scales 1/10 units per frame. (todo: check if the function is ever called by the grand star)
| game/behaviors/celebration_star.inc.c || 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 Grand Star, it scales 1/10 units per frame. (todo: check if the function is ever called by the grand star)
|-
|-
| game/behaviors/coin.c.inc ||  style="background-color: #FFFF90" | The sound a coin makes when it spawns (through bhvSingleCoinGetsSpawned or bhvMrIBlueCoin) in the U version has a flag set which seems to indicate that the sound is affected by the camera's distance to the coin somehow.
| game/behaviors/coin.inc.c ||  style="background-color: #FFFF90" | The sound a coin makes when it spawns (through bhvSingleCoinGetsSpawned or bhvMrIBlueCoin) in the U version has a flag set which seems to indicate that the sound is affected by the camera's distance to the coin somehow.
|-
|-
| game/behaviors/coin.c.inc || style="background-color: #9F9" | On the U version, coins will unload if they land on the death barrier. On the J version, they will continue to exist.
| game/behaviors/coin.inc.c || style="background-color: #9F9" | On the U version, coins will unload if they land on the death barrier. On the J version, they will continue to exist.
|-
|-
| game/behaviors/coin.c.inc || style="background-color: #9F9" | If a coin bounces more than 5 times in a row, it will only continue to the bounce sound on the J version.
| game/behaviors/coin.inc.c || style="background-color: #9F9" | If a coin bounces more than 5 times in a row, it will only continue to the bounce sound on the J version.
|-
|-
| game/behaviors/cruiser.c.inc || style="background-color: #9F9" | On the U version, the wings on the RR cruiser will play a sound 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.inc.c || style="background-color: #9F9" | On the U version, the wings on the RR cruiser will play a sound 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.inc.c || 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/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.inc.c || 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/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 J-specific glitch.]
| game/behaviors/king_bobomb.inc.c || 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 J-specific 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.inc.c || 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/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.inc.c || 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 || style="background-color: #9F9" | In the J version, MIPS' gravity is 2.5. In the U version, it's 15.
| game/behaviors/mips.inc.c || style="background-color: #9F9" | 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 in U but not in J.
| game/behaviors/moneybag.inc.c || style="background-color: #9F9" | When turning invisible, moneybags make a sound 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.inc.c || 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/piranha_plant.c.inc || style="background-color: #9F9" | piranha_plant_reset_when_far is only declared in the U version. It resets the piranha plant if it is far away from Mario. This was done to patch [https://www.youtube.com/watch?v=zkA3WFlHS9g this J-specific glitch.]
| game/behaviors/piranha_plant.inc.c || style="background-color: #9F9" | piranha_plant_reset_when_far is only declared in the U version. It resets the piranha plant if it is far away from Mario. This was done to patch [https://www.youtube.com/watch?v=zkA3WFlHS9g this J-specific glitch.]
|-
|-
| game/behaviors/piranha_plant.c.inc || style="background-color: #9F9" | When the piranha plant is idle, its size is constantly set to normal. This is to make the piranha plant not permanently small when the aforementioned glitch is tried on U.
| game/behaviors/piranha_plant.inc.c || style="background-color: #9F9" | When the piranha plant is idle, its size is constantly set to normal. This is to make the piranha plant not permanently small when the aforementioned glitch is tried on U.
|-
|-
| game/behaviors/piranha_plant.c.inc || style="background-color: #9F9" | Mario can run into a sleeping piranha plant and receive knockback. On the U version, he will not get hurt, but on the J version, he will.
| game/behaviors/piranha_plant.inc.c || style="background-color: #9F9" | Mario can run into a sleeping piranha plant and receive knockback. On the U version, he will not get hurt, but on the J version, he will.
|-
|-
| 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.inc.c || 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 || 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.inc.c || 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/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.inc.c || 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/sparkle_spawn_star.c.inc || style="background-color: #FFFF90" | In bhvUnused080CLoop (not unused), 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.inc.c || style="background-color: #FFFF90" | In bhvUnused080CLoop (not unused), 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: #FFFF90" | The sound the tox-box plays when slamming into the ground has a higher priority in the U version, probably to stop it getting overriden by other sounds.
| game/behaviors/tox_box.inc.c ||  style="background-color: #FFFF90" | The sound the tox-box plays when slamming into the ground has a higher priority in the U version, probably to stop it getting overriden by other sounds.
|-
|-
| 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.inc.c || 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 || style="background-color: #9F9" | On the J version, the baby penguin's cries will not become quieter if Mario/the penguin go further away from the camera (e.g. by fixing the camera). This was fixed on the U version; the cries change in volume depending on the distance from the camera as expected.
| game/behaviors/tuxie.inc.c || style="background-color: #9F9" | On the J version, the baby penguin's cries will not become quieter if Mario/the penguin go further away from the camera (e.g. by fixing the camera). This was fixed on the U version; the cries change in volume depending on the distance from the camera as expected.
|-
|-
| 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.inc.c || 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/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 || 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.