* 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>
* Match func_8002AB70
* Added a header for another file, which required adjusting
a couple other files
* Matched a couple more functions
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
There's a function that appears to use continued fractions
to approximate the value of tanh(x/2), which is super weird.
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Name functions that search for 8018D9E0 entries
The one with "_dupe" in its name is the one that has the potential hard lock
laying around
* Add comment for bug in find_8018D9E0_entry_dupe
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>
* Match 3 functions
* Refresh a ton mips_2_c outputs
* Add a header file for data_segment2
Update a couple mips_2_c outputs based on the contents of the new header file
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* 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>
* Match func_802B5450, func_802B5F00, func_802B71CC
* Match func_802B4FF8
Also do some import fixing
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Match func_800AB290 and func_800AC978
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Match func_800A15EC
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Match func_800A1A20
* Get func_800A1F30 to NON_MATCHING
* Match func_800A3C84
mips_to_c does not currently support labels being in delay slots, although
practice that is fine. To get around this I put a nop in the delay slot
instead. No permanent change is being made to the target assembly.
* Update the mips_to_c output for a couple functions
Split asm file containing unused funcs and added mips_to_c output for them.
* Remove extraneous data file
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Match func_800A4B38
* Match func_800A6034
* Change type of "blue" argument
This allows the function's type signature to look the same as the other
box drawing function.
* Match func_800AC300
* Matched func_800AAEF4
* Matched func_800AAF30 and func_800AAF70
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Match func_80021C78
* Match func_8006E8C4
* Match func_80295BF8
* Match func_8001F980 (already matching)
* Match func_800219BC
* Match func_80022A98
* Add item defines
* Update the GfxPool struct and match some functions
Also reordered variables.h a bit
* Match 2 more functions
* Replace reaming ->buffer references with ->mtxPool
Update the mips_to_c output of a couple functions based on new GfxPool
definition
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
* Match functions related to struct at D_8018EE10
* Remove asm for matched functions
* Match func_800B64EC, func_800B6708, and func_800B6798
* Match func_80091EE4. Fix unused variable warnings in code_80091750.c
* Name some of the fields in struct_8018EE10_entry