Commit Graph

93 Commits

Author SHA1 Message Date
tehzz 132db50245
Split and Decompile Code_800AF9B0 (#228)
* 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
2022-06-22 19:21:29 -07:00
MegaMech 22ca23f32c
Rename some files and Match spawn_players.c (#226)
* name some code files

* Match spawn_players func

* random decomp

* name more files
2022-06-17 03:05:27 -07:00
Tyler McGavran 491f37be4d
Match code_8003DC40 (#223)
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>
2022-06-14 22:28:10 -07:00
MegaMech 7d11a134cc
wip decomp of 80040E50, documentation of dma code, and other (#215)
* Math decomp and more.
2022-06-14 20:36:00 -07:00
MegaMech d9bd7bfbc0
crash_screen decomp and misc (#221)
* crash_screen decomp and misc
2022-06-14 01:37:54 -07:00
Tyler McGavran ed3dad7e1a
Match code_80040E50 (#220)
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>
2022-06-13 17:07:06 -07:00
Tyler McGavran 0923e94420
Match all but one function in code_802B0210.c (#217)
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>
2022-06-11 14:55:45 -07:00
MegaMech 43fd723266
Match dma funcs in 80027040.c (#209)
* Match dma funcs

* Decrement file count decomped by one in readme
2022-05-24 03:04:28 -07:00
Tyler McGavran 84cb46c0e5
Update and add some header files (#205)
* 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>
2022-05-20 18:51:56 -07:00
MegaMech 489e897147
Update gitignore & match more actor funcs (#206)
* 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
2022-05-19 13:20:39 -07:00
MegaMech bcf65f3883
import random_u16 to sm64, match random_s32, and match actor func (#203)
* import random_u16 and atans from sm64

* rand math decomp

* Match func_80298AC0
2022-05-19 01:39:18 -07:00
Tyler McGavran 63c4f48340
Match func_802B0570 and fix BananaActor (#204)
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>
2022-05-18 01:45:46 -06:00
Tyler McGavran b1c0c05bd3
Identify some Actor count variables (#202)
* 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>
2022-05-16 19:46:07 -06:00
Tyler McGavran 55a30f5c8c
Give a name to the list of actors (#200)
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>
2022-05-14 20:03:42 -06:00
MegaMech 418d7d95c6
Memory and Actor decomp (#201)
* Decomp more actors

* Added editor config to prevent clrf

* Memory and actor decomp

* Update code_80296A50.c

* Update code_80296A50.c
2022-05-14 15:12:32 -07:00
MegaMech 98dc90cdd5
Decomp more actors (#198) 2022-05-13 03:42:30 -07:00
MegaMech e4a176d8f5
Match common_textures.inc.c, memory & actor decomp (#188)
* 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
2022-05-12 15:57:56 -07:00
Tyler McGavran 49845b1fe9
Added more actor types and some defines (#194)
* 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>
2022-05-11 20:07:18 -07:00
Tyler McGavran ecb085b291
Add some more actor types, match a function (#191)
* 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>
2022-05-06 21:56:43 -07:00
Tyler McGavran d4a0f7ab8f
Add types for shell and triple shell parent (#190)
Match a function and refresh m2c output for functions that handle
 (triple) shells

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-05-04 21:49:11 -07:00
MegaMech c29ae8d069
More actor decomp (#184)
* More actor decomp
2022-04-26 22:16:52 -07:00
MegaMech 2f8a1bfcb6
Actor decomp (#183)
* Actor decomp
2022-04-26 15:48:36 -07:00
Tyler McGavran 45354a149b
Mostly match a few functions in memory.c (#178)
* Match a few functions in memory.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-04-18 08:04:46 -06:00
MegaMech e4e5f91be5
audio load.c decomp (#176) 2022-04-16 23:11:40 -07:00
MegaMech 614ae13215
fix audio pointers allowing rom shifts again (#169)
* fix audio pointers allowing rom shifts again
2022-03-03 21:21:06 -07:00
Tyler McGavran 5badb9e49c
Replace mk_Vtx_Flag type with GBI provided Vtx (#160)
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>
2022-02-13 00:04:43 -07:00
Tyler McGavran 2f6c87f14f
Identify a credits related struct (#156)
Move some structs around, place them in more meaningful headers

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-02-02 13:19:51 -07:00
Tyler McGavran a5e945b233
Add struct for D_8018CA70 (#153)
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-01-27 17:29:33 -07:00
ChiefFruitcake 226a557d8c
Match functions in code_80071F00 related to D_80165C18 (#151)
* Match some functions in code_80071F00

* More matching in code_80071F00

* And more matches in code_80071F00

* Fix typos in struct_80165C18_entry
2022-01-27 01:21:04 -07:00
Tyler McGavran e371625acb
Add in a struct for surface map entires (#150)
Sourced from https://github.com/micro500/mariokart64/wiki/Surface-Map,
 only minor adjustments were made.

Updated the bounding box corner struct a little based on information from
 the surface map struct.

Refreshed several mips_to_c outputs

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-01-24 21:22:05 -07:00
ChiefFruitcake f0e40cb746
More function matching in code_80057C60 (#149) 2022-01-24 20:22:43 -07:00
Tyler McGavran 78681aa5ba
Variety of changes (#147)
* Update player struct with lap count and rank

Also rename some arrays to better reflect what they are tracking

* Add bounding box corner struct and surface type enum

* Create a .h file and move stuff into it

See https://github.com/DeadHamster35/Tarmac64/wiki/Surface-Types and
 https://github.com/micro500/mariokart64/wiki/Surface-Map for reference

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-01-22 22:46:07 -07:00
ChiefFruitcake a8713d2078
code_80057C60 (#146)
* Match func_8006E058. Fix compiler warnings in code_80057C60.c

* Match functions in code_80057C60

* Undo comments in Camera struct
2022-01-21 20:23:34 -07:00
Tyler McGavran 72553e5194
Fix a small discrepancy with kart_attributes (#145)
Some of the variables defined in kart_attributes.c had they're type wrong when
 being used in other files.

This means that some previously defined variable no longer exist, however
 that's fine as they were never directly referenced. Their existence was
 almost certainly a decomp artifact.

For example, D_800E2404 was never "real". Instead it was likely a compiler
 artifact caused by accessing D_800E2400 at the hard coded index of 1.

I've updated kart_attributes.h to reflect these changes

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2022-01-18 05:59:54 -07:00
Tyler McGavran e413e2ec00
Match 4 functions in math_util, do some tidying up of imports for math_util (#144)
* Match func_802B5450, func_802B5F00, func_802B71CC

* Match func_802B4FF8

Also do some import fixing

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-01-18 05:46:58 -07:00
ChiefFruitcake 5e577b8999
code_8008C1D0 part 3 (#143)
* More matches in code_8008C1D0

* Matching continued

* Create struct for Player struct 0x258 field
2022-01-18 01:22:35 -07:00
Tyler McGavran dac4698b5c
Move texture data from asm to C (#142)
* 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>
2022-01-18 00:44:11 -07:00
Maciek Baron 1bbc7674ff
Identify active screen mode, relabel accordingly (#141) 2022-01-17 06:44:14 -07:00
Tyler McGavran b56b43e721
Match a variety of functions, remove an extraneous data file (#140)
* 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>
2022-01-15 23:00:31 -07:00
ChiefFruitcake 04097806a5
code_8008C1D0 part 2 (#138)
* Matching more functions in code_8008C1D0

* More matches

* Incorporate review comments. Match a few more functions
2022-01-15 20:17:50 -07:00
Maciek Baron 8a56620205
Match functions related to balloon status (#137)
* Match function related to balloon status

* Match func_8006B87C

* Match func_8006BA94
2022-01-14 14:17:09 -07:00
Tyler McGavran 65e7fc87df
Match a variety functions (#136)
* 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>
2022-01-12 22:13:01 -07:00
Maciek Baron 29f9f8890a
Match several functions, add item values (#130)
* Match func_80021C78

* Match func_8006E8C4

* Match func_80295BF8

* Match func_8001F980 (already matching)

* Match func_800219BC

* Match func_80022A98

* Add item defines
2022-01-12 21:19:22 -07:00
ChiefFruitcake 162b4c256d
code_8008C1D0 - player struct functions (#135)
* Match functions in code_8008C1D0
2022-01-11 05:47:57 -07:00
Tyler McGavran dd05d49f5f
Update the GfxPool struct and match some functions (#134)
* 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>
2022-01-09 20:02:34 -07:00
ChiefFruitcake bc99dedb8b
code_800AF9B0 - ghost data (#133)
* 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
2022-01-09 19:24:30 -07:00
ChiefFruitcake 7acd1cbc20
More matching in code_800AF9B0 (#131)
* 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
2022-01-06 20:32:57 -07:00
Tyler McGavran d6cbf56537
Add a couple header files, add some mips_to_c of some previously un-decomped functions (#132)
* Add a couple header files

These files contain function prototypes for matches functions, NON_MATCHING functions,
 and functions used by matched functions.

At this point in time those headers may contain prototypes for functions defined in
 unrelated files, but fixing that will have take time

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-01-04 19:57:16 -07:00
Tyler McGavran c3def3e91f
Match a variety of functions, identify a struct type and some related variables, regenerated some mips_to_c code (#129)
* Meaningful commit message

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Identify another struct and array

Regenerated a lot of mips_to_c code based on these identifications

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-01-03 00:07:24 -07:00
Maciek Baron 20d9e8afba
Relabel/identify more variables and functions based on current knowledge (#127)
* Update labels and names based on current knowledge

* Create gChatacterSelections/gCharacterGridSelections distinction
2022-01-02 17:30:23 -07:00