Version differences: Difference between revisions

From Ukikipedia
Jump to navigation Jump to search
No edit summary
No edit summary
Line 131: Line 131:
| 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/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 ||  
| 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 ||  
| game/behaviors/bowser.c.inc || In the US version, the BitDW demo will always start with Bowser's action set to 14. In the J version, it has a 1/10 chance it'll start with action 3 like in normal gameplay.
|-
|-
| game/behaviors/bowser.c.inc ||  
| game/behaviors/bowser.c.inc || func_u_802B4AF4() is only declared in the U version.
|-
|-
| game/behaviors/bowser.c.inc ||  
| game/behaviors/bowser.c.inc || In ActionBowser13, func_u_802B4AF4 is called only in the U version if "o->oSubAction == 1" and "o->oBehParams2ndByte == 2 && o->oUnknownUnkF4_S32 & 0x10000".
|-
|-
| game/behaviors/bowser.c.inc ||  
| game/behaviors/bowser.c.inc || In ActionBowser2, func_u_802B4AF4 is called only in the U version if Bowser's subaction is 2.
|-
|-
| 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/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)
Line 151: Line 151:
| game/behaviors/celebration_star.c.inc ||  
| game/behaviors/celebration_star.c.inc ||  
|-
|-
| game/behaviors/coin.c.inc ||  
| 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 ||  
| 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 ||  
| 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 ||  
| 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 ||  
| 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 ||  
| 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 ||  
| game/behaviors/king_bobomb.c.inc ||  

Revision as of 01:06, 28 March 2019

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:

File Difference
audio/dac.c (NON-MATCHING INTERPRETATION OF BELOW ASM) 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 In func_80316928, there are different addresses between versions in not yet matching-ly decompiled ASM (todo: get someone who knows asm and is not a noob like me to look at this)
audio/data.c D_80332190 has different data in J and U versions.
audio/dma.c (NON-MATCHING INTERPRETATION OF BELOW ASM) In func_80317270, osInvalDCache isn't called on the J version.
audio/dma.c In func_80317270, osInvalDCache isn't called on the J version. (todo: check for other differences even though there are probably none?)
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.
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
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 Potential ASM differences (didn't look for any)
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 Only include music_touch.c.inc in US version
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 only called in ActionBooGivingStar4 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, the BitDW demo will always start with Bowser's action set to 14. In the J version, it has a 1/10 chance it'll start with action 3 like in normal gameplay.
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 "o->oSubAction == 1" and "o->oBehParams2ndByte == 2 && o->oUnknownUnkF4_S32 & 0x10000".
game/behaviors/bowser.c.inc In ActionBowser2, func_u_802B4AF4 is called only in the U version if Bowser's subaction is 2.
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 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
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 not 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
game/behaviors/king_bobomb.c.inc
game/behaviors/mips.c.inc
game/behaviors/mips.c.inc
game/behaviors/mips.c.inc
game/behaviors/mips.c.inc
game/behaviors/moneybag.c.inc
game/behaviors/moneybag.c.inc
game/behaviors/mr_i.c.inc
game/behaviors/piranha_plant.c.inc
game/behaviors/piranha_plant.c.inc
game/behaviors/piranha_plant.c.inc
game/behaviors/piranha_plant.c.inc
game/behaviors/piranha_plant.c.inc
game/behaviors/piranha_plant.c.inc
game/behaviors/racing_penguin.c.inc
game/behaviors/racing_penguin.c.inc
game/behaviors/red_coin.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/tuxie.c.inc
game/behaviors/water_ring.c.inc
game/camera.c
game/camera.c
game/camera.c
game/camera.c
game/camera.c
game/camera.c
game/camera.c
game/camera.c
game/camera.c
game/camera.c
game/camera.c
game/camera.c
game/camera.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/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