Version differences: Difference between revisions

new audio files
No edit summary
(new audio files)
Line 3: Line 3:
==Background==
==Background==
The Japanese version of Super Mario 64 was released on June 23, 1996, and the North American version 3 months later, on September 29. Between finalization of the Japanese version and release of the North American version, over 200 changes were made to the game's main code. Some of these are simple bugfixes, some are additions to the game, and some are as yet undeciphered.
The Japanese version of Super Mario 64 was released on June 23, 1996, and the North American version 3 months later, on September 29. Between finalization of the Japanese version and release of the North American version, over 200 changes were made to the game's main code. Some of these are simple bugfixes, some are additions to the game, and some are as yet undeciphered.
This article keeps track of the version differences in the currently decompiled source code. 2 audio library files are as yet undecompiled and still remain as mostly ASM; though they contain version differences, the fact that they are in ASM makes them too opaque to fully understand. They are not listed here.


Version differences are found in the audio library and in the main game code. There are no version differences in the game's core engine, nor in the Goddard subsystem (a separate area of the code written in C++ by Giles Goddard and responsible for the draggable Mario head).
Version differences are found in the audio library and in the main game code. There are no version differences in the game's core engine, nor in the Goddard subsystem (a separate area of the code written in C++ by Giles Goddard and responsible for the draggable Mario head).
Line 19: Line 17:
|-
|-
| audio/dma.c || style="background-color: #F99" | 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_1.c || style="background-color: #F99" | Large non-decompiled ASM block
|-
| audio/interface_1.c || style="background-color: #F99" | In the J version of func_8031C0C4, arg1 is cast to an f32. In the U version, it's cast to an s32 and then to an f32.
|-
| audio/interface_1.c || style="background-color: #F99" | Large non-decompiled ASM block
|-
| audio/interface_1.c || style="background-color: #F99" | Large non-decompiled ASM block
|-
| audio/interface_1.c || style="background-color: #F99" | In the J version of func_8031D42C, D_80222A18[arg0].unkA is set to 120. In the U version, it's set to 5760, which is 48 times larger.
|-
|-
| audio/interface_2.c || style="background-color: #F99" | 32 separate numeric literals are doubles in J but floats in U.
| audio/interface_2.c || style="background-color: #F99" | 32 separate numeric literals are doubles in J but floats in U.
Line 51: Line 59:
|-
|-
| audio/playback.c || style="background-color: #F99" | 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/playback2.c || style="background-color: #F99" | 4 separate numeric literals are doubles in J but floats in U.
|-
| audio/playback2.c || style="background-color: #F99" | 2 separate numeric literals (both equal to 1) are doubles in J but ints in U.
|-
|-
| audio/something.c || style="background-color: #F99" | 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.