* Hack nes_font_static and nes_message_data_static
* Make hardcoded config a bit more consistent
* Put debug ROM first
* Reword comment
* Move nes_font_static hack to spec
* Restore extracted/gc-eu-mq
* Introduce assets/_extracted/VERSION, with text extracted there
* move to `extracted/text/`
* Update gitignore s
* rework args for msgenc.py
* put mkdir with others, until theyre all moved at once
* move 0xFFFC back to being extracted, making it use specific macro `DEFINE_MESSAGE_NES` to handle its special behavior
* prettier gitignore
* Move messages 0xFFFC, 0xFFFD to committed message_data.h
* Remove gSystemHeap and use _buffersSegmentEnd instead, make buffer alignments explicit for gcc
* ALIGNEDn -> ALIGNED(n), reposition alignment attribute for PreNmiBuff
* Correct positioning of ALIGNED for filter data in audio/lib/data.c
* Add ALIGNED to TypenameMacros
* ALIGNED(4) on same line for PreNmiBuff
* Revert audio load.c change, to be submitted separately
* Rework disassembly: out of makefile, separate sections, relocs
* another nice print
* fix type hints for python 3.8 dinosaurs
* reencode from utf-8 to euc-jp (iconv) before assemble
* Add "include guards" to macro.inc
* For producing the expected file object files, assemble sections together instead of linking together the individually assembled sections
* review
* fixup
* require spimdisasm >=1.21.0
* remove assembling sections individually (for now)
* uppercase encoding names (standard)
* begin docs
* cleanup
* copy over progress
* cleanup
* small cleanup
* more docs, fill out cmds
* small touchup
* pan weight ganon comment
* fix specId
* seqcmd cleanup
* format
* small cleanup
* one more thing
* small feedback from MM
* partial PR
* some PR Suggestions
* small adjustments
* ticks, seqticks, frames, updates: term cleanup
* small fix
* PR Review
* PR Review
* PR Review
* rm param
* adjust comment
* update renamed functions
* format
---------
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
* only check formatting on modified files (attempt 1)
* foreshadow maximum command string length being an issue and pass files list using a file
* rm temp file list otherwise it shows in git status and counts as a "formatting diff"...
* cheeky z_play modif
* format
* Check formatting in CI
* Move deleteDir() to cleanup section
* Revert "Move deleteDir() to cleanup section"
This reverts commit 4b0dd80cac.
* Give up on check_format.txt
* Fix formatting
* Disassemble gc-eu-mq
* Add script to report progress with matching
* Fix whitespace
* Change T|None to typing.Optional[T]
* Use typing.List
* More type annotations fixes for old Python versions
* Fix type errors
* More type annotations
* Use typing.Iterator
* Use $(PYTHON) for disassembly
* Don't use grouped targets to support very old Make versions
* Docs: suggest checking MM, mention virtualenv, clarify about expected/
* Update sym_info.py
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
* Sync functions.txt
* Start banned symbol range at 0x10000000
* Also ban symbols from 0xC0000000-0xFFFFFFFF
* Unban IPL symbols
* Fix first_diff.py
* Sync z_collision_check functions.txt
* Ban 0xA0 symbols too
* Touch .disasm sentinel file
* Copy -jN comment in docs
* diff.py flags: remove -3, add -s
* Update docs/retail_versions.md
Co-authored-by: Yanis42 <35189056+Yanis42@users.noreply.github.com>
* Comment that segments are still from the Debug ROM
* Revert "diff.py flags: remove -3, add -s"
This reverts commit bfaae66c1d.
* Apply suggestions from code review
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
* Remove #ifdef example
* Reformat Python files with black
* Add copyright notice to new Python files
* Add TODOs to Makefile
---------
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Co-authored-by: Yanis42 <35189056+Yanis42@users.noreply.github.com>
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
* Create separate build directories based on version
* Fix find_unused_asm.sh
* Remove find_unused_asm.sh from Jenkinsfile
* Revert diff.py
* Clarify that gc-eu-mq is not "supported" yet
* Revert xmlcreate.py (to be deleted)
* Remove gc-eu-mq for now
* Add version flags to diff_settings.py and sym_info.py
* --version -> --oot-version
* Fix --oot-version
* Revert adding version flags to tools
* Delete find_unused_asm.sh
* Revert changes to first_diff.py output in tutorial
* Factor out sed usages for spec
* commit old stuff
* progress
* progress
* progress
* progress
* more progress, renaming cues next
* small changes
* enum values added for all actions
* hardcoded values removed when possible
* commands renamed
* first pass of action -> cue
* fix some matches
* some more cleanup
* scriptPtr
* forgot one
* remove cue rot union
* more changes
* some more stuff
* more stuff
* fix matching issues
* some more things
* progress, starting to rename destinations
* small changes
* name some destinations
* more names
* need to switch branch
* progress
* first pass of destination names
* usages fixed
* use destination enum
* fix csdis
* format
* command descriptions
* revert accidental zap changes
* forgot some things
* use a single macro for CutsceneCameraPoint (idk why i didnt think of this sooner)
* typo
* review1
* clarify ruby/sapphire comment
* remove endframe for commands that dont use it
* some more review
* most review, but not all
* scriptPtr -> script, and another small change
* ocarina action
* remove +1 from light settings command, change comment
* actionIndex -> cueIdTemp (i guess)
* _SetCueX -> _SetXFromCue
* format
* tweak fade out seq arg names
* use spline terminology
* more dragorn and engineer review
* misc start/end frame note
* cleanup StartPosRotFromCue vs PosRotFromCue
* cleanup spline terminology
* sPrevCamId -> sReturnToCamId
* comment on debug cs data address
* Cutscene_Init -> Cutscene_InitContext
* single point types are not a list
* remove todo comment
* some more review
* rumble struct names
* some review
* more review
* missed one
* reword pointer comment
* even more review
* match transition terminology with z_play
* change condition and format
* frame count
* command specific structs with alignment
* anon review
* remove unneeded arg from time macro
* yeet `CsCmdGeneric`
* remove unused from single point types
* typo
* compromise attempt -- name endFrame everywhere
* fixes
* fix again
* copied the wrong note
* cutscene data note
* review, format
* compat defines
* idk whats going on man
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
* Cleanup scene names
* missing scene id use
* rename scene draw config functions
* remove now useless comments
* format
* fix double defense/magic swapped
* try precision on "from potion shop"
Co-authored-by: engineer124 <engineer124engineer124@gmail.com>
* Comment names on titled scenes
* Comment some more scene names
* Comment some map assets symbol prefixes
* Name collapse sequence scenes (from the non-collapse equivalent scene's name + `_COLLAPSE`)
* Name ganon/ganondorf boss scenes (symbol prefix suffixed with `Scene` to prevent confusion with boss actors)
* Fix symbol prefix for back alley night scene
* Name the two grave scenes (normal and fairy's fountain variant)
* Name most houses, name/update misc scenes
Co-authored-by: fig02 <fig02srl@gmail.com>
* (hakaana) `GRAVE` -> `REDEAD_GRAVE` to be more specific
Co-authored-by: fig02 <fig02srl@gmail.com>
* `miharigoya_scene`: `market_guard_house`
* `kakariko_scene` -> `kakariko_center_house`
* `richards_house` -> `dog_lady_house` (for localization differences)
* Revert "Comment some map assets symbol prefixes"
This reverts commit 210a38a628.
* remove other xml prefixes
* ganon_boss, ganondorf_boss
* comments to namefixer
* `KAKARIKO_CENTER_HOUSE` -> `KAKARIKO_CENTER_GUEST_HOUSE`
* two collapse sequence scenes -> `GANONS_TOWER_COLLAPSE_`interior/exterior
* Run namefixer
`find src include -type f -exec ./tools/namefixer.py {} \;`
* run formatter
Co-authored-by: fig02 <fig02srl@gmail.com>
* `cUpElfMsgs` -> `cUpMsgs`
Motivation:
ElfMessage is the name of the system that handles c-up messages from navi, but also messages from child/adult saria
so it would make sense to name this after the system name like "ElfMsg"
but "cUpElf" primarily reads like (to me) "c up navi" since the actor implementing navi is EnElf
I think it'd be better to clear that confusion between "navi" and "elfmsg system" by just not using "elf" in the name
* Standardize c-up navi messages ElfMessage data to be named after "CUp"
* -> "Navi"
* Make symbols in `elf_message_` segments static
* new docs
* change commands, format
* introduce navi file id
* use enum
* remove concat
* add clarifying comment for skip
* concat cmd type
* Hints -> QuestHint
* rename command header
* s -> g
* missed enum name
* singular
* missed one
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
* Update asm-processor and fix includes with EARLY
* Enable more IDO warnings and disable unwanted warning 516
* Fix most new and remaining warnings
* Improve skelanime comment
* Improve asmproc pragma comment
Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>
* Add suggested comment for a wrong prototype
* Update asm-processor with the latest fix
Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>
* Allow dmadata to have names different from the original table
Added an argument to the dma define which is used to match debug strings in z_std_dma.c
* Update kaleido manager to support different overlay names
* Update the actor table to support different actor names
Added an argument to the define which is used to match debug strings in z_actor_dlftbls.c
* PR suggestions for argument descriptions
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`