140 Commits
Author SHA1 Message Date
Ryan MyersandGitHub 1d089fad9f Update libultra asm (#701)
* Update func_8008FF1C to a closer match

* Update formatting

* single reg diff

* Generate end labels for all ucodes, rename the boot to rspboot, and have them all get generated together into the same object file, and standardize how they're defined in the headers.

* Use glabel, dlabel, and jlabel for different purposes in asm

* Working compile with ido for asm files.

* Fix other versions bss declaration

* Update exceptasm to show other build versions

* Fix NON_MATCHING build ld script

* Remove a change to libultra that we don't need anymore.

* Get it building with GCC, but it doesn't seem to boot...

* Slightly cleaned up the GCC builds by still ignoring warnings in libultra, and adding some extra assembly line breaks and flags.
2025-09-02 12:57:23 -04:00
Ryan MyersandGitHub 278112886b Sort Includes Alphabetically (#666)
* Consistent tabs in makefile

* Update clang format to fix broken config settings

* Use new clang format settings to sort includes

* Minor python script warning fixes

* Fix a woopsy
2025-07-04 14:43:05 -04:00
Ryan MyersandGitHub 37454869ed Fix the last two unmatched JPN functions that were matched in other versions (#633)
* Match results_render in JP

* It's actually one function left for JP

* Match menu_credits_loop

* Match the last JP unmatched in menu.c
2025-06-17 13:59:37 -04:00
FazanaandGitHub fcb113ce7f Fix opt flags for GCC builds (#624)
* fix opt flags for GCC builds

* Update Makefile
2025-06-13 15:02:59 +01:00
e30f1c535a DKR Assets Tool v0.5.2 (Basic glTF support) (#610)
* Removed old unused files

* Added gltf support

* Reverted dkr_assets_tool_settings.json to previous

* Added animated model example

* document audio_vehicle.c (#588)

* wip

* wip

* wip

* wip

* document audio_vehicle.c

* update score once again

* unify function prefix

* small tweaks

* match func_80060910 and func_80060AC8 (#589)

* match func_80060AC8

* reworked func_80060C58

* match func_80060910

* non equivalent func_8006017C

* format

* match calc_env_mapping_for_object

* Homogenate batch flags and render flags and begin the painful task of documenting waves. (#590)

* part one of wave pain

* 2

* littel bit more

* m

* h

* l

* aagghh

* yeah

* :)

* bruh

* b

* m

* faith

* z

* b

* rename batch flags

* Update waves.c

* fix conflicts

* match func_8000B38C (#592)

* match func_8000B38C

* format code

* update score

* match calc_dynamic_lighting_for_object_1 (#594)

* match calc_dynamic_lighting_for_object_1

* format and score

* update score

* update score again

* Document some Boost data (#593)

* Run formatter

* Document some boost info

* decompile and document math_util.c (#595)

* Match func_8002F440 (#596)

* Add a WIP attempt of func_8004447C, and add some scratch links

* match func_8002F440 and run formatter

* Cleanup some comments

* Update score, fix warnings, and run formatter again

* Remove some bad comments

* match: func_8007FFEC (#599)

* feat: allow score script to generate treemap file for decomp progress (#598)

* Various touchups here and there, some renames in camera.c (#597)

* the beginning of the void

* update asset tool

* void :)

* there

* cam

* model

* more

* fix warns

* ok

* whoops missed a rename

* Add a few NON_EQUIVALENT functions from scratches to keep them up to date (#602)

* WIP func_800101AC

* WIP func_800452A0

* cleanup

* Formatter and func_8004CC20 near match

* func_8004CC20 better score and documentation

* func_80049794 WIP and compilable

* Major cleanup of func_80049794

* Formatter

* Update scratch

* Add func_80019808 from scratch

* Cleanup func_80019808

* func_80019808 score improvment

* Improve func_80049794 score (Thanks Dominik!)

* func_8001C6C4 WIP

* func_8001E93C WIP

* small documenting

* Eliminate a lot of Obj64 casts.

* fix: do not pass default to treemap arg (#604)

* Quick fix for score script (#606)

* WIP func_80060EA8

* Quick fix for score script

* name and document lights, CC modes and textures (#607)

* improve match for func_800BDC80 & match func_80060EA8, func_8002F2AC (#609)

* improve match for func_800BDC80 & match func_80060EA8

* match: func_8002F2AC

* match: func_800452A0 & func_80042D20 (#611)

* partial match: func_800452A0, improve from non equiv to non matching

* match: func_800452A0 & func_80042D20

* document: remaining funcs, add decomp.me links (#612)

* match func_8004447C (#615)

* Document camera and sprites (#614)

* Cleanup, and use constants where possible (#617)

* Update func_80060EA8 WIP

* formatter

* More func_80060EA8

* More func_80060EA8

* WIP func_80060EA8

* Minor cleanups and documenting

* minot cleanup

* Define some constant flags properly

* Misc documenting and cleanup

* formatter

* Fix the scratch link for vsprintf (It was DP's)

* Add the WIP version of vsprintf that's 95.82% matching.

* Fix score script (#619)

* Added gltf support

* Allow either commas or vertical pipes for splitting render flags

---------

Co-authored-by: Unnunu <serge_zorkin@mail.ru>
Co-authored-by: Fazana <52551480+FazanaJ@users.noreply.github.com>
Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>
Co-authored-by: Dominik Peters <github@d-peters.com>
2025-06-12 10:29:08 -04:00
David BenepeandGitHub ff76af0c79 DKR Assets Tool v0.5.1, finished up .obj model support (#584)
* Assets Revision 0.5.1, finish up OBJ support

* Made wrap the default texture wrap mode. Clamping can be done through a .json file

* fixed out_of_range issue with getting multiple textures.

* Fixed issue with thwomp test model.

* Removed unused problematic code from fileHelper

* Why did I add an error here? That was dumb.

* Updated json lib to latest version to fix issue on mac.
2025-05-22 10:59:51 -04:00
David BenepeandGitHub c8a755a5c9 DKR Assets Tool v0.5 (#577)
* Saving files before attempting to integrate custom crash screen

* Put code under DkrAssetsTool namespace

* More progress

* Lots of work done.

* Forgot to revert back to v77 in the makefile

* Included cstdint in bytes_view.hpp

* Hopefully fixed issue with CEnum::tostring(), removed asset_enums from tracking, and modified gitignore to allow obj files from the mods folder

* .mtl file and the textures should now check if the path is absolute or relative.

* Fixed compile_all.sh

* Doing a thing that is technically not valid.

* Removed 'make assets', now assets are built in the normal 'make' setting.
2025-05-16 17:51:40 -04:00
150a56cf01 Use different linker script for nonmatching builds (#505)
* got overzealous with the alignments

* small knowledge improvement on models

* true

* add enum size entries for easy ref

* bgload names I forgot to merge in

* transition memes

* absinthe

* brug

* anguish

* hell

* getting there

* misery

* Update README.md

* Update include/structs.h

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>

* format moment

* Delete object_animate.s

* Update obj_animate.s

* remembered to rename this

* clear mem properly

* Update waves.c

* custom linker override for nonmatching builds

* fix warns

* format

* Update Makefile

* Update dkr.custom.ld

* Update Makefile

* Update waves.c

* Update audio_spatial.c

* Update dkr.custom.ld

* Update dkr.custom.ld

* Update Makefile

---------

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>
2025-05-09 18:50:32 +01:00
FazanaandGitHub 934ef08ad8 Clean up game_ui.c and rework compiler flags + fix the warnings they caused. (#556)
* warns prelim

* Update Makefile

* catch a rain straggler

* wowie

* m

* game_ui.c moment

* Update game_ui.c

* patch

* format
2025-05-06 14:54:20 +01:00
Ryan MyersandGitHub afb264bc16 Match stack_pointer with C code (#530)
* Remove useless comment

* Small amounts of documenting, official names, and use some new knowledge to match what was previously thought to be only possible with hasm.

* Define the proper type for the stack_pointer function, and come up with a solution for GCC builds that should hopefully work.

* Partial revert to support getting the actual stack pointer for GCC builds

* Come up with a better GCC build option for getting the stack pointer

* Update the score
2025-04-25 15:40:33 -04:00
David Benepe 94e2b41a54 Fixed building on raspberry pi 2025-04-03 19:07:38 -04:00
79654e9e59 game_ui.c rework (#493)
* got overzealous with the alignments

* small knowledge improvement on models

* true

* add enum size entries for easy ref

* bgload names I forgot to merge in

* transition memes

* absinthe

* brug

* anguish

* hell

* getting there

* misery

* Update README.md

* Update include/structs.h

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>

* format moment

* Delete object_animate.s

* Update obj_animate.s

* remembered to rename this

---------

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>
2025-03-29 14:05:09 -04:00
50ae503e3b Some attempt at making the save buffer human readable, and renamed joypad.c funcs (#490)
* First pass

* Fix n64crc and add submodules properly

* Fix other versions

* Match func_8005B818 for v80 code.

* Formatting

* Fix build for JPN in last commit. Still broken in post v77 roms though.

* Fix builds for other versions.

* Match load_menu_text for other versions.

* Fix progress script

* update m2c

* Modify asset tools to remove the LD script code.

* Fix asm file macro inclue

* Get a working splat version for us_1.0 to build from the assets tool.

* update asm differ

* Update tools again

* Fix the makefile to only compile assets when requested. This will build all versions successfully, and compile assets for us_1.0 when requested.

* First round of suggestions

* Small cleanup

* Fix the gcc_generate.py path.

* Make entrypointThreadStack

* Small addition to the last commit

* "Fix" score script. Still need to fix the score values themselves, but at least it runs and is kind of close.

* Much closer matching score script

* Fix the splat version due to a breaking change in 0.33.0 for this repo for now.

* Fix the main function name

* Add gitignore entries

* Fix the padding problem to be handled by objcopy instead of a binary pad from splat.

* Update the README and change dependencies to setup.

* Have a hasm header that can be tweaked.

* Still calculate the checksum on no_verify builds or they won't work.

* Add support for boot_custom.bin

* Fix custom boot ld code.

* Fix score script

* Fix gcc building.

* Update m2c

* Fix warning, stop ignoring mod assets, and add some handy make rules.

* Uggh, serves me right for not testing.

* First stab at modifiable entrypoint.

* Fix typo, and small README change

* Stop n64crd from defaulting to returning 6105, so we can properly fail if the CIC checksum fails. Also, fix the

* fix a whole heaping spaghetti pile of warnings

* stack sizes and header depdendancies

* more warns

* fix bug oops

* t

* Update Makefile

Create extract_boot.py

* Update extract_custom_boot.py

* somehow this blew up again in the merge

* Update Makefile

* fix these

* Delete extract_boot.py

* simplification

* Sage is stoopid

* Update controller.c

* permissions

* Update get-binutils.sh

* automatically determine the CIC type at build time

* input renames

* ok pretty happy with the save macros now

* Update save_data.c

* b

* d

* ah

* rename this macro

* yeah

* Update Makefile

---------

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>
2025-03-26 14:52:23 +00:00
3f48db7616 Fix warnings and polish build environment a little (#489)
* First pass

* Fix n64crc and add submodules properly

* Fix other versions

* Match func_8005B818 for v80 code.

* Formatting

* Fix build for JPN in last commit. Still broken in post v77 roms though.

* Fix builds for other versions.

* Match load_menu_text for other versions.

* Fix progress script

* update m2c

* Modify asset tools to remove the LD script code.

* Fix asm file macro inclue

* Get a working splat version for us_1.0 to build from the assets tool.

* update asm differ

* Update tools again

* Fix the makefile to only compile assets when requested. This will build all versions successfully, and compile assets for us_1.0 when requested.

* First round of suggestions

* Small cleanup

* Fix the gcc_generate.py path.

* Make entrypointThreadStack

* Small addition to the last commit

* "Fix" score script. Still need to fix the score values themselves, but at least it runs and is kind of close.

* Much closer matching score script

* Fix the splat version due to a breaking change in 0.33.0 for this repo for now.

* Fix the main function name

* Add gitignore entries

* Fix the padding problem to be handled by objcopy instead of a binary pad from splat.

* Update the README and change dependencies to setup.

* Have a hasm header that can be tweaked.

* Still calculate the checksum on no_verify builds or they won't work.

* Add support for boot_custom.bin

* Fix custom boot ld code.

* Fix score script

* Fix gcc building.

* Update m2c

* Fix warning, stop ignoring mod assets, and add some handy make rules.

* Uggh, serves me right for not testing.

* First stab at modifiable entrypoint.

* Fix typo, and small README change

* Stop n64crd from defaulting to returning 6105, so we can properly fail if the CIC checksum fails. Also, fix the

* fix a whole heaping spaghetti pile of warnings

* stack sizes and header depdendancies

* more warns

* fix bug oops

* t

* Update Makefile

Create extract_boot.py

* Update extract_custom_boot.py

* somehow this blew up again in the merge

* Update Makefile

* fix these

* Delete extract_boot.py

* simplification

* Sage is stoopid

* Update controller.c

* permissions

* Update get-binutils.sh

---------

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>
2025-03-26 12:56:16 +00:00
Ryan MyersandGitHub 6db9a8d6ea Splat merge (#470)
* First pass

* Fix n64crc and add submodules properly

* Fix other versions

* Match func_8005B818 for v80 code.

* Formatting

* Fix build for JPN in last commit. Still broken in post v77 roms though.

* Fix builds for other versions.

* Match load_menu_text for other versions.

* Fix progress script

* update m2c

* Modify asset tools to remove the LD script code.

* Fix asm file macro inclue

* Get a working splat version for us_1.0 to build from the assets tool.

* update asm differ

* Update tools again

* Fix the makefile to only compile assets when requested. This will build all versions successfully, and compile assets for us_1.0 when requested.

* First round of suggestions

* Small cleanup

* Fix the gcc_generate.py path.

* Make entrypointThreadStack

* Small addition to the last commit

* "Fix" score script. Still need to fix the score values themselves, but at least it runs and is kind of close.

* Much closer matching score script

* Fix the splat version due to a breaking change in 0.33.0 for this repo for now.

* Fix the main function name

* Add gitignore entries

* Fix the padding problem to be handled by objcopy instead of a binary pad from splat.

* Update the README and change dependencies to setup.

* Have a hasm header that can be tweaked.

* Still calculate the checksum on no_verify builds or they won't work.

* Add support for boot_custom.bin

* Fix custom boot ld code.

* Fix score script

* Fix gcc building.

* Update m2c

* Fix warning, stop ignoring mod assets, and add some handy make rules.

* Uggh, serves me right for not testing.

* First stab at modifiable entrypoint.

* Fix typo, and small README change

* Stop n64crd from defaulting to returning 6105, so we can properly fail if the CIC checksum fails. Also, fix the

* Extract custom boot script

* Update automated scripts.

* Woops, fixed the MAXCONTROLLERS thing now.

* Add the method for building binutils back. Sorry!

* Only use -m32 when the longbit says we're on a 64 bit platform.

* Woops....

* Hopefully fix arm detection for raspi ido downloads.
2025-03-25 09:07:00 -04:00
FazanaandGitHub 59f86699a1 gcc building (#487) 2025-03-20 21:40:03 +00:00
Ryan MyersandGitHub a005a4eb3d Match all libultra, and more closely match ultralib (#466)
* Massive libultra changes

* Fix the build!

* Remove crc comment that seemd to break the score script for some reason.

* Update README score.

* Apply some suggestions

* rename sins and coss funcs.
2025-02-24 11:45:02 -05:00
Ryan MyersandGitHub 39c01d4f5e Splat changes (#462)
* Merge changes from splat where it makes sense at this stage.

* Update score, and script for what seems like new map file style.

* format

* Fix accidental inclusion of version specific details.

* Match camera_init

* Update Score

* Near match for func_80046524

* Format

* Woops, it's NON_MATCHING

* Missed button pressed value

* Work on documenting func_80046524

* MAtch func_80046524

* Match func_80046524

* Minor changes

* Fix warnings in func_80046524

* format.py

* Update README

* Match func_800230D0

* Fix UB in mode_init_taj_race
2025-02-21 09:23:36 -05:00
6c700e9726 Bunch of stuff I had forgotten I had (#458)
* fix warns

* memory

* hehe

* name

* name

* yes

* Surpress bloaty warnings on matching builds

* Update game_ui.c

* label unused vi offset

* fix doubleword memcpy

* segment momento

* swap prefix since it'll be a bit more prominent

* Update src/save_data.c

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>

---------

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>
2025-02-13 15:19:38 +00:00
FazanaandGitHub e73b533cbb Support for MacOS on ARM (#456)
* initial attempt

works on WSL, boutta test on macos

* attempt 2

* Update Makefile
2025-02-11 19:44:41 +00:00
8415bc71b1 Document almost all of menu.c (#447)
* strings

* fix ub

* first pass

* pass 2

* pass 3

* pass 4

* pass 5

* pass 6

* pass 7

* pass 8

* pass 9

* pass 10

* pass 11

* pass 11

* pass 12

* pass 13

* pass 13

* pass 14

* pass 15

* pass 16

* pass 17

* oh my giddy aunt I see the light

* h

* fix my life choices

* fix game breaking typo

* Update src/menu.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/menu.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/menu.c

Co-authored-by: David Benepe <benepe96@gmail.com>

---------

Co-authored-by: David Benepe <benepe96@gmail.com>
2024-05-25 20:29:41 +01:00
69fe4d3b3d More various labellings (#446)
* bumble

* rumble done basically

* printf is looking better now too

* racer stuff

* model offsets

* two wave things

* obj id

* fix object ids

* randomly remembered to fix alignment on these

* fix ids part 2

* format

* fix warning

* identify baseline table

* boss race IDs

* lots of hud

* last of the current feasible hud stuff

* Update README.md

* this name

* neat

* I randomly remembered why this exists

* anti tamper define

* object elevation

* ai nodes

* particle emitters

* objects

* spectate cams

* gost

* michael bay

* door

* okay thats enough

* gost

* fix build errors

* format

* Update include/level_object_entries.h

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>

* Update src/objects.c

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>

---------

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>
2024-05-03 17:24:00 +01:00
FazanaandGitHub b92f46a46c Label rumble system, various missing bits of HUD, fix object ID references and label debug text (#445)
* bumble

* rumble done basically

* printf is looking better now too

* racer stuff

* model offsets

* two wave things

* obj id

* fix object ids

* randomly remembered to fix alignment on these

* fix ids part 2

* format

* fix warning

* identify baseline table

* boss race IDs

* lots of hud

* last of the current feasible hud stuff

* Update README.md

* this name
2024-04-29 23:15:00 +01:00
David ecfd38f686 Asset Revision 4 2024-04-10 15:02:22 -04:00
Ryan MyersandGitHub 1df542bb56 Couple matches, non matches, and non equivalents. (#437)
* Early WIP func_8002BAB0

* More func_8002BAB0 WIP: 12266

* func_8002BAB0 : 9332

* func_8002BAB0 : 425

* func_8002BAB0 : 55

* func_8002BAB0 NON_MATCHING

* Label magic code usages

* Hide warnings about switches not containing all possible enum values, and fix other warnings.

* WIP func_80074B34

* Half assed func_80074EB8 attempt. Utter failure.

* Identify some vars for the fish entry init, and fix it's prototype.

* Near match obj_init_fish

* Fix INCONSISTENT function signatures

* Update fish entry

* Match func_800AFC3C

* A little cleanup

* Match func_800B3E64

* Update README
2023-11-30 11:18:56 -05:00