Commit Graph

126 Commits

Author SHA1 Message Date
Tyler McGavran 782ed71f61
Massive data relocation (#295)
Mostly relocating rodata from data/* files to the appropriate
 asm/nonmatching/* files, although there is some plain data
 relocating to be found in here too.

Big change to note is the addition of the code_802AAA70.c file,
 split from memory.c. Based on some padding in the ro/data for
 memory it seems clear that a split is needed, although it is
 not clear that exact spot chosen for the split is correct.
 Still, it gets the file padding for the ro/data and text segments
 correct so it can't be too wrong.

Also included is an update to the asm_processor tool to support
 the .hword directive. I made a PR to the main repo of that
 project with an identical change and it was accepted.

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2023-03-29 18:52:15 -06:00
MegaMech 8d118db0b2
Labelling of some hard-coded addr to syms (#294)
* Updated final displaylist symbol

* Cleaned up loader script

* Random changes

* Various naming and decomp
2023-03-28 16:40:03 -06:00
MegaMech db4e0a3727
Disassembled courses, added DLpacker, and disassembled packed DLs (#290)
* Disassembled all courses; packed DLs and course data.

* Added displaylist packer

* Minor documentation and naming
2023-03-07 19:48:17 -07:00
Tyler McGavran 533d035875
Some assorted matches (#289)
Also renamed a couple variables

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2023-01-31 07:02:40 -07:00
Tyler McGavran d1ebe06b29
Assorted matches (#288)
* Matches in code_80071F00

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2023-01-25 07:50:32 -07:00
Tyler McGavran e7ceabf94f
Couple matches and giving names to some textures (#285)
* Give names to some textures

* Match a couple functions

* Remove a use of bin2c from the makefile

* Its a little strange, but two of the portrait textures share
 a TLUT. I believe this necessitates that the portraits be
 part of the same PNG file.

* 2nd portrait referenced in undefined_syms.txt

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2023-01-03 20:43:30 -07:00
Tyler McGavran c705bc4a6a
Lots of matches related to the object list (#284)
Identified a couple more lists of object list indices, added some
 comments indicating what they're used for. Those comments are
 most likely non-exhaustive so there's still some investigation
 to be done there.

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-12-28 20:19:11 -07:00
Tyler McGavran a753895359
Assorted matches, mostly focussing on 80027D00 (#277)
* Assorted Matches

* Matches in code_80027D00

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-11-21 11:57:07 -07:00
MegaMech 0c10beae0e
Matches in 80281fa0, render_courses, and create defines for sound cues. (#276)
* Matches, add permute, and add notice to quick runners

* 80281fa0 matches, render_courses, and create defines for audio

* Renamed 80281fa0.h, func naming, and deleted data_121DA0

* Added clang format

* Matched load_surface_map

* Match func in memory.c
2022-11-21 04:06:12 -07:00
Tyler McGavran 4e5946257d
Some matches for audio/synthesis (#268)
* 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>
2022-11-01 15:37:10 -06:00
Tyler McGavran 4647cdcd7e
Assorted, unrelated matches (#267)
* Assorted matches

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-11-01 15:07:35 -06:00
Tyler McGavran 1483ddaa03
Matches and m2c refreshing for code_80057C60 (#266)
* 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>
2022-10-19 22:00:45 -06:00
Tyler McGavran b7e7b34998
A bunch of unrelated, assorted changes (#263)
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>
2022-09-30 22:48:59 -06:00
MegaMech 82b53f5928
Player struct member naming and matched a few funcs (#262)
* Player struct member naming
* Matched a few funcs
2022-09-26 12:59:41 -07:00
Tyler McGavran 754e31da04
Even more matches for code_800431B0.c (#261)
* 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>
2022-09-25 10:26:58 -07:00
Tyler McGavran 5cd2115c2e
Some matches for code_800431B0 (#259)
* 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>
2022-09-20 18:55:59 -07:00
Tyler McGavran 2c57c81f3a
Match the rest of actors.h (#254)
* Matched rest of actors and more

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-09-08 16:19:53 -07:00
MegaMech df9ad2d23b
Matched a few funcs and renamed seg to virt funcs (#253)
* Matched a few funcs and renamed seg to virt funcs
2022-09-07 22:41:04 -07:00
Tyler McGavran 1897d232a6
Add lots of headers (#252)
* 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>
2022-08-25 17:57:58 -07:00
Tyler McGavran dfd54d9a10
Match a lot of functions, add header for objects (#251)
* 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>
2022-08-23 09:33:00 -07:00
Tyler McGavran 7d23fcc063
Fix some of the memory allocation in framebuffers (#182)
* 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>
2022-08-14 22:47:11 -07:00
MegaMech e9383d1b7a
code_8001F980 decomp + profiler doc + more (#250) 2022-08-01 16:32:20 -07:00
Tyler McGavran a536985a13
Add structs for "vehicle" types in 80005FD0 (#248)
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-07-27 19:03:35 -07:00
Tyler McGavran bf4ca94711
Match a variety of functions (#245)
Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-07-15 11:49:40 -07:00
MegaMech 7042a3eab5
Document game state related logic (#244)
* Document game state logic

* More namings
2022-07-15 00:44:33 -07:00
MegaMech fd7941e841
Split out some unused asm and documented main.c (#242)
* Splitting out unused asm

* Documented main.c
2022-07-11 00:02:41 -07:00
MegaMech a8e984d2fd
Decomp 800 byte sized funcs and smaller (#241)
* Decomp 800 byte sized funcs and below
2022-07-09 04:05:11 -07:00
MegaMech 42b81c1979
Decomp various small funcs (#240) 2022-07-09 02:37:17 -07:00
tehzz 9ae471b033
Match a few functions in Code800B45E0 (#239)
* pass clang errors for anon union struct member

* match a few more funcs
2022-07-08 19:12:23 -07:00
Tyler McGavran f2eef3b82e
Identify some stuff in the Camera struct (#238)
Make a header file for all the camera stuff, refresh a lot of
mips_to_c output

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2022-07-06 17:36:27 -07:00
tehzz 40bb0154a8
Decomp menus.c (#229)
* update m2ctx to make N64 sgi context

* finish decomping menus.c
2022-07-05 19:01:42 -07:00
Tyler McGavran a8e5c0f212
Match several functions in code_80005FD0 (#230)
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>
2022-07-01 13:14:20 -07:00
MegaMech c8156e34f9
More matches for 800431B0.c (#236)
* Matched funcs in code_800431B0.c
2022-06-30 13:18:31 -07:00
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