A lot of these matches come from observing the external audio
stuff in SM64 and realizing that a bunch a couple of the structs
in MK64 are just expanded version of their SM64 counterpart.
Presumably all the expansions are for handling the doppler effect,
although I can't say that with certainty
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Lots of audio decomp
* effects and playback are 100% matched
* Took some notes from the SM64 Makefile to get the right compiler
options for a couple files
* Added the audio files to rename_symbol utility
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Introduce waypoint struct, which code_80005FD0 seems to be
involved with.
Updated several mips_to_c outputs as well.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* change return type of func_8000546C
* try to fix submodules
* update asm_processor for new ASM directives
* split code_800AF8B0 into 3 files; move rodata into files/asm
* move rodata into code_800AF9B0 asm funcs
* decomp func_800AF9E4
* match 800AFF58
* merge in master (renamed code_800AF9B0.c to menus.c)
* revert menus.c back to code_800AF9B0.c
* add bss to code_800AF9B0
* rename code_800B0350.c to menus.c
* remove unused ALIGN macros
Matched its rodata too
Required making a minor adjustment to the Player struct, which
required updating a couple of other files
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Required getting the .rodata for that file correct too.
Matched a couple other funtions here and there as well.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Add a define for the size of the actor list, and add a comment
cautioning people about how to appropriately interact with
the specialized types.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* More actor decomp
* memory.c decomp plus bss import into actor code
* Match actors and segment D match
* Match common_textures.inc.c
* Add tool bin2c.py
* Break out some credit text stuff into a C file
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Add some comments for better clarity
Also delete the asm file for a function that was matched in the
previous commit
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Move texture data from asm to C
Required dropping a couple typedefs since they no longer had a purpose
Regenerated a couple mips_to_c outputs based on the updated types
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Name variables related to selecting a game from the main menu
* Match a couple functions requiring jumptable
* Match func_800B4728
* Match func_800B536C, func_800B5888, func_800B5AAC, and func_800B5AD8
* Name functions related to loading and validating SaveData
* Match func_800B4CB4
* Update selected player defines
* Match func_800B5404
* Match func_800B6088
Some of this is identifying some functions and structs related to the Controller
pak menu
Some of it is related to structs concerning textures and "animations" and their
associated functions
* Match draw_box, func_80098C18, func_80098FC8
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This matches more closely with similar functions in SM64
Identified a LUT for the segmented address of each glyph's texture
CharWidthMap is more accurately called GlyphDisplayWidthMap. The values in
the map don't exactly match the texture width for the given glyph. They
likely have more to do with how the glyph is drawn on screen rather than
being a measure of its true width.
There are other LUT-like entries in data_0DD0A0_2 that clearly contain
glyph textures, but it's not clear how they differ from the "main"
LUT.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
gNextDemoId is a little weird. If a demo is currently running that variable is the ID
of the demo that will run next. It's never "current", its always one step ahead
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>