* start making models extraction with blender
* finishing extract model
* Update fast64
* extract course
* Update fast64
* Update fast64
* simplify import of course_displaylists and course_textures and remplace adress with texture
* Update fast64
* change data format and simplify the thread queue
* move in a blender folder
* remove fast64
* re add fast64
* add model_extract and fast64_blender in makefile
* multithread with make file split the models into multiple json and add course segment
* Update fast64
* remove old model_extract
* remove the error when he don't find blender
* start rename around course section
* update submodule fast64
* fix compilation issue and add some model to extract
* Update fast64
* remove fast64
* re add fast64
* update submodule
* fix compilation issue
* add other collision gfx and prepare reorganise file
* re arrange json
* Create README.MD
* Update README.MD
* Update README.MD
* update fast64
---------
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
* update clang and add action
* try clang on course folder only
* forget two file
* Update course_displaylists.inc.c
* forget few other file
* Update course_vertices.inc.c
* format all code while get it match
* second pass
* format other dir
* disable clang format on bad ido code
* fix some tabulation
* revert format on tool dir
* Update clang-format.yml
* ignore gbi.h
* add some read me instruction
* fix error
* format and fixing error
* Update README.md
---------
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
* Add Windows Support
* Modify readme instructions for windows building
* Remove unused files
* Modified extract_assets.py, new_extract_assets.py, and build.py to work on windows
his PR cleans up segment related code in main.c.
Also cleans up the linker a bit.
Add memory pool to linker as .bss to validate that it exists properly.
Move framebuffers, gfx, and audio buffers out of racing segment and make its own segment.
Rename framebuffers.c to buffers.c as it contains more than just framebuffers.
Import asserts from sm64 to validate that code segments are not overlapping
Rename segNoload to segmentNoload
Rename 802BA370 segment to trigTables
Rename gMenuSelectionFromEndingSequence to gGotoMenu
Rename gMenuSelectionFromQuit to gGotoMode
Rename SEG_ENDING_SEQUENCES to SEG_ENDING
Rename data_821D10 to ceremonyData
Rename data_825800 to startupLogo
* Proper linkage for textures in course display lists
* Does not use new_extract_assets. This tool is small and easy to maintain on its own.
* Auto generate the linkonly files
Signed-off-by: Taggerung <tyler.taggerung@email.com>
* Linkage for the ceremony_data file
Cleaned up all but 1 undefined symbol from the 0x0B range. The one
leftover may be something from texture_tkmk00. Or atleast, that's
what I think. Can't say for certain
* Startup logo linkage
Cleaned up a bunch of unused items from assets.json too
Signed-off-by: Taggerung <tyler.taggerung@email.com>
* Add new utility to calculate packed dl end and vertex count
Requires changing a bunch of actual references to packed dl lists
with raw numbers. Which feels extremely bad but it doesn't match
otherwise.
Signed-off-by: Taggerung <tyler.taggerung@email.com>
* Hard code array lenghts in appropriate headers
Use macros to generate the vertex counts and packed dl end points
Heavily dependent on the array lengths being accurate. If they
aren't stuff will break.
Signed-off-by: Taggerung <tyler.taggerung@email.com>
* Update building of packed_dl files
* Expose course_data symbols to linker.
* Remove undefined_syms for course data
* Update ctx_includes
Signed-off-by: Taggerung <tyler.taggerung@email.com>
* Migrated data and rodata for code_80091750
And it even matches when built!
Minor annoyances:
There are some EUC-JP strings in `func_800A6E94` and `func_800A69C8`
that are currently in byte form. The asm files don't get put
through `icnov` so we can't have them as strings until they're
parent functions are matched.
`func_8009F5E0` has the symbol `D_800E7594` replaced with the
actual number `0x800e7594`. The symbol in question is almost
certainly fake, but I can't figure out what its meant to be.
So I've hardcoded it for the time being to make the migration
possible.
* Fully match all the NEEDS_RODATA functions
Signed-off-by: Taggerung <tyler.taggerung@email.com>
* Run iconv as part of build
That way files that need to be in EUC-JP encoding can still be
worked on in UTF-8
Signed-off-by: Taggerung <tyler.taggerung@email.com>
This allows each asset group to define its own cleanup procedure
while also providing a way to cleanup specific asset groups.
Signed-off-by: Taggerung <tyler.taggerung@email.com>