* Add a lot of header files
Did my best to move all relevant function prototypes and external
variable declarations into the header files too.
Matched a few functions in the process
* Updated progress.py
Some of the listed files/folders have been deleted/renamed,
so I reflected those changes in progress.py
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Match a lot of functions, add header for objects
* Refreshed a TON of functions and created/added to several
header files
* Add header for code_800431B0, address comments
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Fix some of the memory allocation in framebuffers
Also includes a the questionable change of undoing a previously
made match for func_80027A20. The changes made here remove an
AVOID_UB usage and (I would argue) is therefore more "correct",
but undoing a byte-for-byte match is admittedly bad.
Also adds in some header files and updates some not-quite-right
decomps to be slighly more accurate.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Refreshed a couple mips_to_c outputs as well
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.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>
This required making some minor adjustments to a struct in
common_structs.h, which further required a couple tiny updates to
some functions in a couple other files. Nothing too crazy.
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>
Several other functions are as matched as the can be, needing only
the addition of some RODATA to fully match.
Others are in a mostly-matched state, but have some incorrect
register allocation. More investigation/work is needed to
figure that out.
Most of those leftover have had their m2c output regenerated.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Thank you Mech for figuring out what the stack management stuff was
about.
And yes, apparently the best way to match those functions is to have
an `if` statement that uses an unset local variable as its condition
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Update header files for main, memory and math_util
* Required updating func_802A82E4 to keep the match
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* import random_u16 to sm64
* rand math decomp
* Match func_80298AC0
* Match some actor funcs
* Renames
* update gitignore for .bin textures
* update player struct member 34 to Vec3f
* Named and documented actor destroy funcs
I misunderstood how unions worked. In order to accomplish the
original goal, the 3 named s16's need to be in a struct instead
of just floating around.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Identify some Actor count variables
* Match place_all_item_boxes
Also more accurately define the UknownRock struct. Some of the
track specific data is spawning points for the "permanent"
actors (stuff like falling rocks, shrubbery, item boxes, etc.)
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>