* Set up gc-eu and match all code
* Format
* Mark gc-eu-mq as WIP until it builds OK
* Move original/MQ map mark data to separate files
* Add #includes to .inc.c files to help out VS Code
* Use #if in spec instead of .inc.c files
* Match retail BSS ordering
* Revert moving some global variables to headers
* Adjust block numbers after header changes
* Fix debug build
* Overlay bss ordering
* Fix BSS ordering after header changes
* gc-eu-mq OK
* Implement preprocessor for #pragma increment_block_number
* Transfer usage comment from reencode.sh
* Use temporary directory instead of temporary file
* Move ColChkMassType back
* 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
* Some GCC flags improvements
* Move -fno-reorder-blocks -fno-zero-initialized-in-bss to assets only
* Add -fno-PIC since some gcc versions use -fPIC as default
* Enable builtin functions on gcc, with appropriate changes to missing_gcc_functions.c
and ultra64/libc.h
* Move -fno-merge-constants -mno-explicit-relocs -mno-split-addresses to overlays only
as they are only needed there for reloc reasons
* Remove unneeded casts in missing_gcc_functions.c
* Change gcc assets flags handling
* 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)
* Use iconv to convert strings to EUC-JP for reassembly
* Compare .data size, .bss size, and .rodata contents in retail_progress.py
* Show data diffs in summary for humans
* Use multiprocessing to very significantly speed up retail_progress.py summary
* Remove intermediate function
* Make sigint less jank
* Hide the evidence
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
* add --not-ok to only print not-OK files in summary
---------
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
* 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 debug macros for common functions
* Revert NDEBUG change
* MALLOCR -> MALLOC_R
* DEBUG -> OOT_DEBUG
* Use the same name for debug and non-debug matrix functions
* Fix file/line argument order
* Revert g[s]DPNoOp[Tag]
* Use SystemArena_MallocDebug directly in GameAlloc_MallocDebug
* MTXF_TO_MTX -> MATRIX_TO_MTX
* 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
* Makefile automatically rebuild source files including headers from include/tables
* Fix typo, make z_actor.c also depend on actor_table.h
* Add message data dependencies for z_message_PAL, adjust comments
* Improve error message and match up with https://github.com/zeldaret/mm/pull/1173
* Update Makefile
More descriptive error messaging
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
---------
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>
* Rename and document SkelCurve
* AVOID_UB in DemoTreLgt_OverrideLimbDraw
* Rename code_8006C510
* Objdump flags in the makefile
* Move CC_CHECK above compilation
* Review 1
* Review 2
* Review 3
* Review
Add doxygen comments to file head
use angle macro,
improve bug comment,
make arguments of SkelCurve_Draw more consistent,
Change this temp to pad in MagicWind
* Un-fake a couple of matches in memory manip functions
* Document fmodf
* Un-fake a couple of matches in memory manip functions
* Document fmodf
* Rename functions and files
* Document memmove, memsets, memcpys
* Format
* Sort out some missing sizeofs
* Name fmodf
* Rename local variables
* size_t
* Use COBRA_SHADOW_TEX_SIZE
* Review
* Tweak the Doxyfile to remove @brief requirement
* Roman's review
* Fix a bug comment
* Change fmodf
* Format all handwritten asm and document some
* Use c preprocessor for constants
* Fix
* Fix PI_STATUS_ERROR, some label improvements
* Avoid hi/lo for constants
* Some more comments
* Properly mark functions as functions and their sizes
* Fix merge
* Improvements
* Review suggestions, rework procedure start/end macros to be more like libreultra
* Move IPL3 symbol definitions into ipl3.s
* Fix undefined_syms, add include and language guards to asm.h and fix the comment in gbi.h
* Consistent hex capitalization, add some MIPS builtin defines to CC_CHECK to behave properly
* Add -no-pad-sections assembler option and clean up alignment in gu files and bzero
* Further suggestions and improvements
* Matrix conversion function clarifications
* Fix passing AVOID_UB to gcc
* Suggestions
* Suggestions, global interrupt mask improvements
* Further suggestions, interrupt mask comments
* Comments fixes, rdb.h
* Switch from # comments to // comments, remove unnecesary .set gp=64 directives
* Further review suggestions
* Missed one
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.
* 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>
* 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>
* cleanup libultra
* fixes
- use quotes instead of <> for includes
- add macros for zelda specific thread priorities
- fix Makefile
- properly format the remaining pfs structs
* fix button macros + add CHECK_BTN_ANY/CHECK_BTN_ALL
* remove ULTRA_ABS
* fix includes
* update z_player.c/z_lib.c + run format.sh
* merge upstream/master
* fix include in En_Goroiwa
* fix includes
* Setup player decomp
* Decompile z_player.c and z_player_lib.c
* Decompile remaining z_player.c functions
* Various player improvements
* Player progress (some non matchings and .data migrated)
* Player progress (reposition data and fix some non matchings)
* Cleanup, improve and document parts of z_player_lib.c/z_player.c
* Fix player renames in z_en_st.c
* Fix missing open/close disps in z_player.c
* Minor player fixes
* Address player comments
* Speed up elf2rom
* Remove all built-in make rules
* Only perform a single mkdir
* Optimize elf2rom further
Co-authored-by: zelda2774 <zelda2774@invalid>
* osPfsIsPlug.c and osContSetCh.c OK
* update
* __osPfsGetStatus.c OK
* removed unused asm
* Updated all libultra controller files to use new structs instead of the temporary structs. Added os_pfs.h
* controller updates
* fixed header guard
* Made suggested changes
* guLookAt.c OK
* commit
* __osPfsSelectBank.c OK
* osPfsDeleteFile.c OK
* pfsreadwritefile.c OK
* osPfsFreeBlocks.c OK
* cleaned up ospfsfreeblocks
* started pfsinitpak.c
* pfsallocatefile.c OK
* contpfs.c decompiled with 1 non matching
* osPfsFindFile.c OK
* pfsinitpak.c decompiled. one non-matching
* Actually fixed merge conflict
* sins.c OK
* cosf.c sinf.c and sins.c OK
* moved osAfterPreNMI to its own file. Renamed code_801031F0 to contquery.c
* pfschecker.c OK
* final update and rename
* Removed makefile testing thing that i accidentally added
* Made suggested changes
* Decompile jpegdecoder.c, padsetup.c and code_800C3C20.c
* change func_800C3C20's prototype and rename some fields in jpeg related structs
* Fix comment in Jpeg_GetU16 and change func_800C3C20
* use a switch in padsetup.c
* Auto stash before rebase of "upstream/master"
* A large number of scenes have been decompiled.
* Fixed makefile
* Decompiled around 40 scenes.
* Removed old file
* Updated to newer version of ZAP2
* Finished matching remaining scenes.
* Added back ZAP2
* Removed old commented out spec lines
Co-authored-by: Jack Walker <7463599+Jack-Walker@users.noreply.github.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
Co-authored-by: Jack Walker <7463599+Jack-Walker@users.noreply.github.com>
- Find file and directories automatically, which removes the need for explicit listing and .mk files
- Rename OPTIMIZATION to OPTFLAGS for consistency with other variables
- Reorder some lines to make the file easier to work with
- Remove the recipe for asm/overlays/ going through iconv, which is no longer necessary