* Updated the Makefile to make the VERSION_US file
get used when compiling stuff.
* Updated the abi.h file to match SM64, with some modifications to
support the currently targeted version (US).
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Matches and m2c refreshing for code_80057C60
* Convert some Vtx's into a Mtx
Based on the usage of D_0D008E98, it seems like it should be a
Mtx. So this commit changes some Vtx's into a Mtx
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
Couple matches functions, an update to a struct, a bunch of header
files adjustments, and some mips_to_c regenerations
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* More matches for code_800431B0
* Also added a header for the common_textures file since some other
files use the Gfx/Vtx variables defined there
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Required making an adjustment to the object struct, which was required to fix some other files.
* Decompiled some gfx
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* 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>
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>
* 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>
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
* Added more actor types and some defines
Also adjusted the generic Actor struct to have some of its members
have names that are generally reasonable for all types of actors
Added a union to the BananActor struct, makes accessing the `rot`
member and the overlapping id/index members more sensible
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Add some more actor types, match a function
* Identify the boundBox member of the Player struct
Note that while the `flag` members are signed, they should be understood as just a group of bits.
Based on some googling around (see https://stackoverflow.com/a/11644749) the operation `thing.flag |= 0x8000`
is NOT undefined behaviour, even though that is setting the sign bit.
The numerical interpretation of the result as a signed number is implementation defined, while the
actual operation acts on the bit representation of the number.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
There's no reason to have our own special type when it exactly matches a GBI type.
This required updating some inc.c data as the old mk_Vtx_Flag type had the 'flag'
member in the incorrect location.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>