Currently the C preprocessor is used to remove comments from the text
files before encoding them.
However the option used (`-fpreprocessed`) is only supported by gcc –
but not by clang, which breaks the macOS build.
By using Python to remove comments, we can remove the use of this
gcc-specific option, and fix the macOS build.
* Document `func_800D1694` as `Matrix_TranslateRotateYXZ`
* Document `func_800D1FD4` as `Matrix_ReplaceRotation`
* Cleanup `Matrix_RotateAxis`
* Document `func_800A7EC0` as `SkinMatrix_SetRotateAxis`
* Document `func_800D2A34` and `func_800D2A98` as `Matrix_SetTranslateScaleMtx`(`F`)
* Document mostly unused functions at the end of `sys_matrix.c`
* Add in-use renamed functions to `namefixer.py`
* Add `Matrix_SetTranslateScaleMtx2` to `namefixer.py`
* Run formatter
* Fix namefixer.py mistake from #952
* Format clang-11.1
* Fix `Matrix_TranslateRotateYXZ` wrongly documented, it actually is `Matrix_SetTranslateRotateYXZ`
* VS Code is stellar at refactoring (no)
* Run formatter
* Come on VS Code
* Improve `Matrix_ReplaceRotation` docs
* Fix typo
* Fix namefixer.py
* Add pad_text to mkldscript and update progress.py
Implements `pad_text` from MM and uses it instead of asm nops for the padding in ucode_disas.
Also updates `progress.py` to account for the change (RIP 1000000 code size), and to have a green badge for 100%.
* Remove 1.00mb comment in progress.py
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
* Initial progress on z_message_PAL, very messy
* Fix merge
* Some more progress
* Fix merge
* More z_message_PAL
* Small progress
* More small progress
* message_data_static files OK
* Prepare z_message_tables
* Matched another function, small updates
* Attempt to use asm-processor static-symbols branch
* Refactor text id declarations
* Begin large text codes parser function
* Fix merge
* Refactor done
* Build OK, add color and highscore names
* Remove encoded text headers and automatically encode during build
* Fix kanfont
* Various cleanups
* DISP macros
* Another match aside data
* Further progress
* Small improvements
* Deduplicate magic values for text control codes, small improvements
* Tiny progress
* Minor cleanups
* Clean up z_message_PAL comment
* Progress on large functions
* Further progress on large functions
* Changes to mkldscript to link .data in the .rodata section
* data OK
* Few improvements
* Use gDPLoadTextureBlock macros where appropriate
* rm z_message_tables, progress on large functions
* 2 more matches
* Improvements
* Small progress
* More progress on big function
* progress
* match func_80107980
* match Message_Update
* match func_8010BED8
* done
* Progress on remaining large functions
* Small progress on largest function
* Another match, extract text and move to assets, improve text build system
* Small nonmatchings improvements
* docs wip
* Largest function maybe equivalent
* Fix merge
* Document do_action values, largest function is almost instruction-matching
* Rename NAVI do_action to NONE, as that appears to be how that value is used in practice
* Fix merge
* one match
* Last function is instruction-matching
* Fix
* Improvements thanks to engineer124
* Stack matched thanks to petrie911, now just a/v/low t regalloc issues, some cleanup
* More variables labeled, use text state enum everywhere
* More labels and names
* Fix
* Actor_IsTalking -> Actor_TalkRequested
* Match func_8010C39C and remove unused asm
* More docs
* Mostly ocarina related docs
* All msgModes named
* Fix assetclean
* Cleanup
* Extraction fixes and headers
* Suggestions
* Review suggestions
* Change text extraction again, only extract if the headers do not already exist
* Fix
* Use ast for charmap, fix assetclean for real this time
* Review suggestions
* BGM ids and ran formatter
* Review comments
* rename include_readonly to include_data_with_rodata
* Remove leading 0s in number directives
* Review suggestions for message_data_static
* textbox pos enum comments, rename several enum names from Message to TextBox
Co-authored-by: Thar0 <maximilianc64@gmail.com>
Co-authored-by: Zelllll <56516451+Zelllll@users.noreply.github.com>
Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: Roman971 <romanlasnier@hotmail.com>
* Update names and doc of `Matrix_RotateRPY` and `SkinMatrix_SetRotateRPY` to ZYX Tait-Bryan angles
* Update name and doc of `Matrix_JointPosition` to `Matrix_TranslateRotateZYX`
* `Euler ***` -> `Tait-Bryan *** angles`
* Update docs of `SkinMatrix_Vec3fMtxFMultXYZW` and `SkinMatrix_Vec3fMtxFMultXYZ`
* Fix doc of `SkinMatrix_MtxFMtxFMult`
* Update docs of `SkinMatrix_Invert`
* Change name and docs of `SkinMatrix_SetRotateYRP` to `SkinMatrix_SetRotateYXZ`
* Change name and docs of `SkinMatrix_SetScaleRotateRPYTranslate` to `SkinMatrix_SetScaleRotateZYXTranslate`
* Change name and docs of `SkinMatrix_SetScaleRotateYRPTranslate` to `SkinMatrix_SetScaleRotateYXZTranslate`
* Change name and docs of `SkinMatrix_SetRotateRPYTranslate` to `SkinMatrix_SetRotateZYXTranslate`
* Add renamed functions to `namefixer.py`
* Run formatter
* Consistent function names (`ABC()` if equivalent to `A() B() C()`)
* Automatic XML for link_animetion
* Make sure tutorial images are not gitignored
* OK
* Correct ovl_Boss_Sst RangeEnd
* ExternalFiles
* Remove Segment="128"
* Remove segments from place_title_cards
* format, newlines, remove previous xml
* Implement a single Object Table for the enum and the segments
* Implement a single Actor Table for the enum and the overlays
* Implement a single Effect SS Table for the enum and the overlays
* Remove initvars.h and move its content to relevant files
* Update object 0 to use OBJECT_NONE and document it in the table
* Rename OBJECT_NONE to OBJECT_INVALID to avoid confusion
* Document EnGoroiwa and BgJyaGoroiwa
* Run format.sh
* Add renamed functions to actorfixer script
* no more calling out "the devs" for bad code
* `EnGoroiwa#flags` -> `stateFlags`
* `Matrix_MtxFToRotS` -> `Matrix_MtxFToYXZRotS` (and not ZXY oops), `func_800D2264` -> `Matrix_MtxFToZYXRotS`
* Document Moblins (EnMb)
* Use actual decomp-style function names
* Add renamed functions to actorfixer.py
* Add general documentation and add EnMbType enum to check moblin subtype
* Add fig's doc comment on Actor_TestFloorInDirection
* Revert documentation on z_eff_ss_dead.c
* remove `gSPFogPosition(?,?)` comments on `gSPFogFactor` uses in z_rcp.c
* run formatter
* 13 functions left, data imported
* 2 left
* 1 left
* OK
* Begin naming
* sfx rename
* spec
* Begin naming, add LINK_IS_CHILD to EnDu
* Fix spelling of its/it's
* Document most of object_dekubaba, import symbols
* Document draw functions, begin on actionfuncs
* New actor function names, some float constants
* Name almost everything
* Delete asm
* Name size, format
* Review changes
* Review changes
* Brackets, format
* Mostly done but shifted
* still messed up
* Almost OK
* OBJECT_JYA_OBJ OK, OBJECT_GR OK
* Done
* Merge master and format
* Cleanup
* Cleanup 2
* Start object MB dont merge yet
* Object_MB OK
* Object_ydan_objects OK
* General 'ydan' actor cleanup
* Forgot some small things
* Object_EC OK
* add .gitkeep and run format
* Object_sd OK but no textures cause of a zap issue
* PR fixes
* Fix object_sd
* fix ydan
* delete .gitkeep files
* OBJECT_BOX as far as it can go with current ZAP
* Fix undefined_syms
* Start child link object
* Push progress, dont merge yet
* Object_mori_objects OK
* Fixed?
* Fix conflicts again
* Seems like i missed some textures
* Extract data for BgBombwall
* More field
* ZAP YEP 2.0
* Object_Box OK
* Object_SD ok. Ready to merge
* remove ASM and merge master
* remove ASM
* remove files wrongfully added to docs/
* Almost done
* Change comment in z_player_lib.c
* forgot some DLists in player_lib.c
* Fix conflict, run format
* Same as before but this time with Tex and TLUT
* Last few things
* fix object_GR and add limbs to object_sd
* Nane -> Name
* gChildDekuShieldMtx is now a matrix and not a blob
* PR fixes (Fig)
* add a space for comment in z_player_lib.c
* re push and new lines
* PR fixes (AngheloAlf)
* PR fixes (Roman)
* Fix Heishi2
* PR fixes (Fig)
* Replace spacing in a file
* PR fixes (Roman)
* ViMode OK
* Fix variable name in regconvert tool
* ViMode: fix formatting
* Add nonmatching impl for ViMode_Configure, respond to PR
- Fixed struct field naming (unkXX -> unk_XX)
- ViMode_Configure args are not flags for top/left etc; seem to be for
video mode
- Used @Random06457's implementation of `ViMode_LogPrint`
* Use plain LOG_ADDRESS in ViMode_LogPrint
* Incorporate PR feedback from Roman971
* Decompile ovl_kaleido_scope + minor cleanups
* Add a common header for ovl_kaleido_scope
* Start cleaning up and documenting kaleido_scope (+ some interface docs)
* Improve and fix some kaleido_scope non matchings
* Match KaleidoSetup_Init
* Extract icon_item_fra/ger_static files
* Add more documentation and matches to kaleido_scope
* Improve the z_kaleido_collect.c non matching
* Rename z_kaleido_8081EFF0.c to z_kaleido_prompt.c
* Update most kaleido variables to be static
* Improve GS flag macros
* Improve z_lmap_mark.c and extract z_lmap_mark_data.c with a script
* Various minor fixes and improvements
* Minor fixes and review changes
* Review changes part 2
* Rename gSetTileCustom to gDPSetTileCustom
* Review changes part 3
* Initial xml
* most of in-code references
* Add limbs and evrything else
* Functions used by EnRiverSound
* Fix forearm and use void* for textures
* Run formatter
* Fixed upstream
* move .data
* match init
* mathc func_808C1D00
* match func_808C32F4, func_808C2B38, func_808C3224, func_808C2AB0
* match func_808C30F4, func_808C2A40, func_808C3704, func_808C3704
* func_808C18B0
* match another chain of functions
* Match func_808C29B0, Draw, and most of OverrideLimbDraw
* start update
* Really close
* Almost match update, match Override Limb Draw
* start the big switch
* Make a little progress on the big switch function
* Test
* chip away at the big one some more
* test
* progress
* More progress
* Add
* Finished another chain of functions
* Decomp effect functions
* Get the whole file in C
* Move data to its own C file
* Start the effect file en_bdfire.c
* Messed up expected
* Finish EnBdfire.c
* A little clean up
* done as far as I can get it
* Delete scenes directory
* Delete graphs directory
* Delete graphovl.py
* match and such
* Delete BossDodongo_Update.s
* PR fixes
* restore old IDO
* Color Filter
* PR fixes (Roman)
* Fixed added assets
* remove asm
* PR fixes (Roman)
* quick format change
* remove unwanted files
Co-authored-by: Louis <5883445+louist103@users.noreply.github.com>
Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: Fig02 <fig02srl@gmail.com>
* Update asm_processor to current master
* Update variables in En_Torch2 to actually be static
This is now possible because asm_processor was updated to handle static symbols in GLOBAL_ASM
* Update tutorial to reflect changes about static symbol limitations
* Fix setup warnings
Signed-off-by: angie <angheloalf95@gmail.com>
* Casting the problems away
Signed-off-by: angie <angheloalf95@gmail.com>
* I don't really like changing the type to void
Signed-off-by: angie <angheloalf95@gmail.com>
* We're out of EARLY hell
Signed-off-by: angie <angheloalf95@gmail.com>
* ./format.sh
Signed-off-by: angie <angheloalf95@gmail.com>
* Change skel type to "Normal"
Signed-off-by: angie <angheloalf95@gmail.com>
* Changes requested
Signed-off-by: angie <angheloalf95@gmail.com>
* suggestion of roman
Signed-off-by: angie <angheloalf95@gmail.com>
* early is back :c
Signed-off-by: angie <angheloalf95@gmail.com>
* This will be a fix in ZAPD
Signed-off-by: angie <angheloalf95@gmail.com>
* change raw offset to index
Signed-off-by: angie <angheloalf95@gmail.com>
* Rename offset to data index
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* clean up a bit the code
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* add --offset and --hex options
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* add --file flag to automatically convert every gGameInfo index to a macro
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* add --stdout flag
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* Check if index/offset is valid
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* Changes asked by @ethteck
Signed-off-by: Anghelo <angheloalf95@gmail.com>
* the script now should be able to parse the files in the build folder
also added some flags to ignore an actor list and parse the non-matching like before
Signed-off-by: angie <angheloalf95@gmail.com>
* bit of cleanup
Signed-off-by: angie <angheloalf95@gmail.com>
* script to compare the results
Signed-off-by: angie <angheloalf95@gmail.com>
* dont assume every function is in just one file
Signed-off-by: angie <angheloalf95@gmail.com>
* fix qword allign
Signed-off-by: angie <angheloalf95@gmail.com>
* move the csv stuff to a function
Signed-off-by: angie <angheloalf95@gmail.com>
* add flag to export the amount of instructions per function
add examples for how to use the script
fix a bug
Signed-off-by: angie <angheloalf95@gmail.com>
* add include-only flag
Signed-off-by: angie <angheloalf95@gmail.com>
* delete extra file
Signed-off-by: angie <angheloalf95@gmail.com>
* keep functions order
Signed-off-by: angie <angheloalf95@gmail.com>
* get data in
* Match Init and one other
* match some more
* match a bunch more
* merge master
* OK
* Some naming done
* OBJECT_NY almost done. waiting on ZAP changes
* Remove ASM
* Cleanup
* Commit before merge
* fix damage table
* Change comment
* First batch of files
* Add missing folders back
* Fix missing folders again
* Finish fixing existing texture files
* Gameplay_Keep XML finished
* Most actor gameplay_keep undefined syms removed
* Only ~200 gkeep symbols remain
* All gkeep symbols that ZAP supports are fixed
* Cleanup, and make gkeep names more accurate
* Starting to figure out what some unknown blobs are, merge zeldaret in
* fix a few more things
* refactor gkeep
* Change how gitkeep is handled
* gkeep xml cleanup
* Gkeep finished, now just waiting up ZAP updates
* 100 link animations finished
* 150 link animations finished
* 200 link animations finished
* 250 link animations finished
* 350 link animations finished
* 400 link animations finished
* 450 link animations finished
* 500 link animations finished
* 550 link animations finished
* All Link animations finished
cannot build yet because ZAP doesn't have LinkAnimationHeader yet
* xml changes for new zap stuff
* finish gameplay_keep
* fixing existing objects
* ready for pr besides zap padding issue
* mostly ready for pr
* format all c files
* all conflicts fixed
* make changes that roman requested
* fix thing i didn't mean to change
* some animation symbols renamed
* fixed roman's stuff
* lifemeter hardcoded pointers removed
* fix issue with incorrect data in gameplay_keep
* removed unused asm
* fixed most of fig's comments
* fix all of fig's comments
* reformat files
* Update assets/xml/textures/icon_item_static.xml
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
* Update assets/xml/textures/icon_item_static.xml
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
* fixed stuff
* fixed most of roman's comments
* remove leading zeroes
* should build now
* git subrepo pull --force tools/ZAPD
subrepo:
subdir: "tools/ZAPD"
merged: "f84d8337b"
upstream:
origin: "https://github.com/zeldaret/ZAPD.git"
branch: "master"
commit: "f84d8337b"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* all of gkeep symbols fixed
* compiler error fixed
* format files
* final changes
Co-authored-by: Zelllll <elijah@DESKTOP-NMP1I89.localdomain>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
* Darkmeiro decompilation
Bg_Gnd_Darkmeiro decompiled, matched, and documented.
* give this a shot
* fix conflict
* one more try
* could be useful
* whoops
* some decomp
* still playing around with this
* rename functions
* ZAP again
* ZAP again
* the renaming begins
* more renaming. hopefully didn't break anything
* change all the things
* this and then merge
* and done
* one little thing
* small docs, small rename
* changed mind on cylinder and quad elements
* something
* more stuff
* more docs
* more adjustments
* Fixed some types
* more fixes
* all sorts of cleanup
* now with flags
* match!
* names and such
* update tools
* damage tables
* ColChkInfo
* one more thing
* formatting
* more formatting
* anime merge
* some stuff
* damage table
* again
* changes
* .s
* changes
* oc2 type
* a couple things
* format
* un-name magic arrows, not enough proof yet
* fix damage table script and remove old one
* EnAObj
* changes
Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: Fig02 <fig02srl@gmail.com>
* Darkmeiro decompilation
Bg_Gnd_Darkmeiro decompiled, matched, and documented.
* give this a shot
* fix conflict
* one more try
* could be useful
* whoops
* ZAP2 stuff
* ZAP why
* ZAP again
* more names
* so many names
* we got subsystems now
* slight cleanup
* merge part 2
* new naming scheme
* slight adjustment
* no limit
* syms maybe
* step one
* OK, it's fixed
* table
* some names and such
* comments**
* update zap
* gitkeep to please jenkins
* ZAP
* fixer
* fixer2
* fixer3
* zap
Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: fig <fig02srl@gmail.com>
* Auto stash before rebase of "upstream/master"
* A large number of scenes have been decompiled.
* Fixed makefile
* Decompiled around 40 scenes.
* Removed old file
* Finished matching remaining scenes.
* Removed old commented out spec lines
* Decompiled a few object files.
* Reorganized xmls a bit. Updated pu_box overlay to use proper symbol.
* Updated texture and object file decomp
* Fixed newline issue with ZAPD
* Moved scenes/ into the assets/ folder
* Fixed a few compile errors
* Auto stash before rebase of "upstream/master"
* A large number of scenes have been decompiled.
* Fixed makefile
* Decompiled around 40 scenes.
* Removed old file
* Finished matching remaining scenes.
* Removed old commented out spec lines
* Decompiled a few object files.
* Reorganized xmls a bit. Updated pu_box overlay to use proper symbol.
* Updated texture and object file decomp
* Moved scenes/ into the assets/ folder
* Fixed a few compile errors
* Fixed merge issues.
* Fixed makefile merge error
* Fixed additional merge error
* Fixed several more merge issues
* Commented out gameplay_keep and sk2 extraction, since currently unused.
* Reenabled gameplay_keep extraction since it's used in the spec
* Fixed build error
* Removed test struct
* Fixed makefile error that would happen on fresh builds
* Fixed merge issue
* Removed relative paths
* Multithreading on extraction, spec uses numbers, few changes to XMLs
* Removed redundant code from the extract_assets script
* object_sk2 and object_spot09_obj OK
* object_spot11_obj OK
* object_spot17_obj OK
* Test: One of the gameplay_keep dlists given a proper symbol
* Updated asset symbol names based on new naming scheme
* XMLs use "Offset" instead of "Address" now
* Fixed merge issues, updated ovl_Magic_Dark xml and gfx file
* Updated to use latest build of ZAPD
* Updated ZAPD again
* Updated ZAP to remove assimp dependency
* Jenkins Test: Added .gitkeep file
* Updated ZAP once more
* Updated png file name to comply with new naming scheme.
* Fixed bad include
Co-authored-by: Jack Walker <7463599+Jack-Walker@users.noreply.github.com>
* Darkmeiro decompilation
Bg_Gnd_Darkmeiro decompiled, matched, and documented.
* give this a shot
* fix conflict
* one more try
* could be useful
* whoops
* ZAP2 stuff
* ZAP why
* ZAP again
* small fix to function parser
* off by one error
* Darkmeiro decompilation
Bg_Gnd_Darkmeiro decompiled, matched, and documented.
* give this a shot
* fix conflict
* one more try
* could be useful
* whoops
* ZAP2 stuff
* ZAP why
* ZAP again
* new tool
* python function conventions
* new name
* new error handling
* whoops comments
* Darkmeiro decompilation
Bg_Gnd_Darkmeiro decompiled, matched, and documented.
* give this a shot
* fix conflict
* one more try
* could be useful
* whoops
* ZAP2 stuff
* ZAP why
* ZAP again
* Is this where I make a Mr Hands joke?
* Manos: the Hands of Fate
* cleanup
* and format
* Progress
* deleting more function files
* more
* more
* More
* more
* more
* more
* more
* 2 more
* more
* more
* more
* more
* more
* more
* more
* more
* more
* master update
* 4 more
* Merged
* 3 more
* One more done!
* ug
* Ido Recomp test
* try 2
* Recomp by default
* Fix Jenkinsfile
* Fix 2
* Fixing struct
* CFE errors
* CFE fix -O2
* Cleanup
* More progress, almost done...
* Almost..
* Update and some progress
* formatting
* Cleanup
* Major cleanup
* done for now
* PR comments
* PR comments
* merge master and format
* a few things
Co-authored-by: fig <fig02srl@gmail.com>
* Initial progress
* Broken but almost
* Final attempt at the last function
* Fixing struct def
* PR updates
* PR stuff
* baby commit
* PR comments
* Error handling
* Added ability to provide ichaindis a symbol and gave it ability to look up actor var names
* Minor fixes
* Fixed bug with output of script
* Refactored the ROM lookup for ichaindis
* Switched ichaindis to use filemap for ROM address lookup
* Removed unused import and constant
* Minor improvements to ichaindis
* Updated help text
* ichaindis will now only calculate Actor vars if needed
* Changed no-names switch to names switch
* Speed up elf2rom
* Remove all built-in make rules
* Only perform a single mkdir
* Optimize elf2rom further
Co-authored-by: zelda2774 <zelda2774@invalid>
* Initial commit for en_js
* More work on decomping en_js
* More en_js work
* z_en_js OK
* Made requested changes/improvements
* Renamed arg in func_80A88F64
* Fixed undefined_symbols.txt
* Fixed undefined_symbols.txt
* Fixed undefined_symbols.txt