summaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2025-05-25Introduce TEX_LEN macro for texture arrays lengths (#2541)Dragorn421
2025-05-23[assets] Explicit size for textures and dlists (#2534)Dragorn421
* Add `conf.EXPLICIT_SIZES = True` for making some array resources declare and define with explicit length * EXPLICIT_DL_AND_TEX_SIZES = True * revert rm line
2025-05-20Assets system utilities (#2529)Dragorn421
2025-05-20Add write_source.txt: list of files to write source for during assets ↵Dragorn421
extraction (#2531)
2025-05-18New assets system (#2481)Dragorn421
* wip: New assets system tm Builds gc-eu-mq-dbg OK from clean after 1) make setup 2) python3 -m tools.assets.extract -j 3) replace 0x80A8E610 with sShadowTex in extracted/gc-eu-mq-dbg/assets/overlays/ovl_En_Jsjutan/sShadowMaterialDL.inc.c 4) make various symbols in extracted data like sTex static * use variables from config.yml for gMtxClear and sShadowTex addresses * Write source with static for overlays using `HACK_IS_STATIC_ON` hack * gc-eu-mq-dbg OK from clean with `make setup && make` * implement more skeleton-related types, cleanups, fixups * fix extracted data to no longer produce compilation warnings * implement more of RoomShapeImage types * yeet XmlPath from ExternalFile usage * Implement PlayerAnimationDataResource (link_animetion data) * fix csdis CS_TIME extra arg * dmadata file names no longer hardcoded for gc-eu-mq-dbg * ntsc-1.0 OK * xml fixes * slightly improve standard output * rm extract_assets.py * generate and use Limb enums (TODO: check Skin skels and implement for Curve skels) * handle dependencies between xmls * introduce RawPointers xml attribute to ignore specific pointers and keep them raw * add tools/extract_assets.sh * fixups * only extract if xmls changed or if -f (force) is used * fixups, gc-eu OK * all versions OK * check attributes of xml resources elements * Implement legacy skelanime resources * fix ASSET_FILES_BIN_EXTRACTED/COMMITTED: look for .u8.bin specifically instead of just .bin * implement JFIFResource * fix png/jpg wildcards: look specifically for .u64.png .u32.png .u64.jpg * Makefile: Add rules to build .png, .bin and .jpg in assets/ too * start writing actual docs * extract sTransCircleDL and sTransWipeDL * misc cleanup/fixes, pygfxd 1.0.3 * refactor CDataExt.set_write callback args to use a dataclass * Move {} to in-source * misc * more progress on spec * fix missing braces in n64dd_error_textures.c * finish xml spec doc * assets xmls fixes * some cleanup, use `gNameTex_WIDTH/HEIGHT` macros in dlists * handle hackmode_syotes_room, fix compile * C build_from_png * rm tools/assets/bin2c * rm ZAPD * format * remove rule to generate dmadata_table.py * CC0 license (and some import cleanup) * dont try to build zapd (rmd) * simplify palettes with single user (ci images with a non-shared palette) * add docs on how images are handled * bss * allow -j N * fix n64texconv python bindings memory management * move -j at the end of calling extraction script * with -j, update last_extracts.json as each job completes rather than only if all complete * make interrupting less jank by making child processes ignore sigint * use enum names in `SCENE_CMD_SKYBOX_SETTINGS` * `multiprocessing.get_context("fork")` * import rich, except ImportError s * fix optional rich usage * .bss * .bss * .bss * assets extraction: -j -> -j$(N_THREADS) * .bss * change LIMB_NONE/MAX defaults to be FILE_OFFSET instead of SKELNAME * 0XHEX -> 0xHEX * fix bss * Proper includes for assets mostly proper, some includes like dlists resources always causing a sys_matrix.h include (when not every dlist references gIdentityMtx) could be done better * rm z64.h * rm z64.h take two * bss * Make .u64 suffix for pngs optional * fixup: rm .u64 suffix from n64dd image paths * Remove elemtype suffixes from .bin and .jpg files * Update images.md * some build_from_png cleanup, more error handling, comments * Handle skybox textures Introduce "sub-format" suffix for pngs, with sub-formats split_lo and split_hi being used for skybox textures * fixup for older python * improve collision output some * fully use SURFACETYPE[01] macros in writing extracted surface types * use WATERBOX_PROPERTIES in extracted waterboxes * some SceneCommandsResource cleanup * format EnvLightSettingsList output
2025-05-06Fix fix_bss.py (#2526)Dragorn421
2025-04-27Delete macros.h; Delete global.h (#2516)fig02
2025-04-19Remove Variables.h; Decouple z64.h from global.h (#2507)fig02
* progress * z64.h issues sorted * remove variables.h * format * n64 fix * another fix * did the wrong fix * fix libleo * fix bss * review * remove instead of comment
2025-04-04Account for z_rumble's unreferenced bss at the start in fix_bss script (#2502)Derek Hensley
* Account for z_rumble's unreferenced bss at the start * z_locale and black
2025-03-27Seperate baserom segments dir from output dir (#2498)Derek Hensley
2025-02-17Add `n64texconv` and `bin2c` tools to convert extracted .png and .bin to C ↵Tharo
arrays during build (#2477) * n64texconv and bin2c * mv tools/n64texconv tools/assets/ * fix * more light fixes * Silence -Wshadow for libimagequant * Add reference counting gc for palette objects in python bindings * Fix missing alignment in n64texconv_*_to_c functions Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Check palette size in n64texconv_image_from_png * accept memoryview as well as bytes for binary data * minimal doc on n64texconv_quantize_shared * fix a buffer size passed to libimagequant * assert pal count <= 256 on png write * Disable palette size check for input pngs, ZAPD fails the check * No OpenMP for clang * When reading an indexed png into a CI format, requantize if there are too many colors for the target texel size --------- Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2025-02-15fix_bss.py: Try to handle one-past-the-end pointers (#2471)cadmic
* fix_bss.py: Try to handle one-past-the-end pointers * Proofread
2025-02-09Read static symbols from .mdebug in sym_info.py (#2460)cadmic
* Patch .mdebug for data_with_rodata objects * Read static symbols from .mdebug in sym_info.py * Add ability to print all symbols * Add license * Fix bug when missing .mdebug section * /patch_data_with_rodata_mdebug.py license + nitpicks
2025-02-09Update csdis.py (#2459)Dragorn421
* csdis: move filemap import to main() as it is only needed there * csdis: fix CS_TIME macro * csdis: make `disassemble_cutscene` return cutscene size in words * add comment on why total_entries+1
2025-02-08Rename gMtx(F)Clear to gIdentityMtx(F) (#2458)mzxrules
2025-02-06Use CIC 6102 for iQue decompressed ROMs (#2457)cadmic
* Use CIC 6102 for iQue decompressed ROMs * Future-proof is_ique * Make things more readable
2025-02-05git subrepo clone --force git@github.com:Thar0/com-plugin.git ↵Tharo
tools/com-plugin (#2455) subrepo: subdir: "tools/com-plugin" merged: "fc5aa5eda" upstream: origin: "git@github.com:Thar0/com-plugin.git" branch: "main" commit: "fc5aa5eda" git-subrepo: version: "0.4.6" origin: "https://github.com/ingydotnet/git-subrepo" commit: "110b9eb"
2025-02-04Delete disassembly data for ique-cn (#2453)cadmic
2025-02-04Finish matching ique-cn (#2451)Tharo
* git subrepo clone git@github.com:Thar0/com-plugin.git tools/com-plugin subrepo: subdir: "tools/com-plugin" merged: "e8543312d" upstream: origin: "git@github.com:Thar0/com-plugin.git" branch: "main" commit: "e8543312d" git-subrepo: version: "0.4.6" origin: "https://github.com/ingydotnet/git-subrepo" commit: "110b9eb" * ique-cn OK * Review suggestions * Most suggestions * git subrepo pull tools/com-plugin subrepo: subdir: "tools/com-plugin" merged: "81595ed1c" upstream: origin: "git@github.com:Thar0/com-plugin.git" branch: "main" commit: "81595ed1c" git-subrepo: version: "0.4.6" origin: "https://github.com/ingydotnet/git-subrepo" commit: "110b9eb" * Fix other versions
2025-02-03fix_bss.py: Gracefully handle EGCS-compiled files (#2452)cadmic
2025-01-29[iQue] Match z_file_copy_erase (#2447)cadmic
* [iQue] Match z_file_copy_erase * Reword comment
2025-01-28Fix /bin/bash -> /usr/bin/env bash (#2448)Sirius902
* Fix /bin/bash -> /usr/bin/env bash * Add curl to docker container
2025-01-24git subrepo pull --force tools/ZAPD (#2441)cadmic
subrepo: subdir: "tools/ZAPD" merged: "35ea376da" upstream: origin: "https://github.com/zeldaret/ZAPD.git" branch: "master" commit: "35ea376da" git-subrepo: version: "0.4.6" origin: "git@github.com:ingydotnet/git-subrepo.git" commit: "110b9eb"
2025-01-22git subrepo pull tools/fado (#2437)cadmic
subrepo: subdir: "tools/fado" merged: "a45f99b46" upstream: origin: "git@github.com:EllipticEllipsis/fado.git" branch: "master" commit: "a45f99b46" git-subrepo: version: "0.4.6" origin: "git@github.com:ingydotnet/git-subrepo.git" commit: "110b9eb"
2025-01-19[iQue] Match z_kanfont (#2428)cadmic
2025-01-17Preserve NULL/true/false macros in permuter/decomp.me import (#2430)cadmic
2025-01-17[iQue] Match z_sram (#2426)cadmic
* [iQue] z_sram: Use iQue-specific read/write macros * [iQue] z_sram: Make checksum a struct * [iQue] z_sram: Finish matching * Call the trigraph usage a bug * Fix bss * Sram_iQueReadWrite -> Sram_ReadWriteIQue * Use SRAM_HEADER_MAGIC for loop bound * Rename sZeldaMagic -> sSramDefaultHeader and use less char literals
2025-01-14[iQue] Match ovl_kaleido_scope (#2421)cadmic
* [iQue] Match ovl_kaleido_scope * Add bug comment for OOB reads Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Preemptively fix merge conflicts --------- Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2025-01-10[iQue] Update permuter/decompme import (#2415)cadmic
* [iQue] Update permuter/decompme import * Fix GCC build
2025-01-10[iQue] Match remaining src/boot files (#2417)cadmic
* [iQue] Match remaining src/boot files * Fix debug ROM * Use -funsigned-char * Sort ique before gc in LNx macros
2025-01-10[iQue] Match gzip/zlib decompression (#2416)cadmic
* [iQue] Match gzip/zlib decompression Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> * Update missed renames in disassembly * Fix some formatting --------- Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
2025-01-10[iQue] Match handwritten asm files in libultra/os, match C replacements of ↵Tharo
osGetCount and __osSetCompare (#2413) * [iQue] Match handwritten asm files in libultra/os, match C replacements of osGetCount and __osSetCompare * Format * Adjust some label names in dcache functions
2025-01-06Match remaining IDO files for iQue (#2394)cadmic
2025-01-02[iQue] Build some C files with EGCS (#2396)cadmic
2024-12-30Download EGCS binutils and gcc for iQue (#2391)cadmic
* Download EGCS binutils and gcc for iQue * Use curl -s for cleaner output
2024-12-28Add missing vimode splits in iQue disassembly (#2393)cadmic
2024-12-27Match iQue compression (#2389)cadmic
* Match iQue compression * Use a dict * Use Makefile variables for compression settings * Put COMPRESS_ARGS last * Pad iQue ROMs to 16 KiB * Replace --pad-rom with --pad-to and --fill-padding-bytes * Clarify --fill-padding-bytes
2024-12-26Download ido-recomp compiler binaries instead of committing them (#2388)cadmic
* Download ido-recomp compiler binaries instead of committing them * Skip downloading compilers if ido_recomp/ exists * Use make instead of bash script
2024-12-26Set up iQue disassembly (#2384)cadmic
* Set up iQue disassembly * Label libultra vimodes * Format * skapi.c -> skapi.s * Fix AudioDebug functions * Group D_80134488 with fp.s in disassembly * Label boot bss * Add bss split for siacs
2024-12-25iQue text extraction (#2383)Tharo
* iQue text extraction * More consistent terminology * Fixes for jpn, split each encoding into a separate charmap file, merge enc.nes.h and enc.chn.h * Merge nes and chn in DEFINE_MESSAGE macros * Remove redundant defines in nes_message_data_static
2024-12-21Set up build system for ique-cn (#2382)cadmic
* Set up build system for ique-cn * Fix size of fbdemo_circle assets * Treat iQue as NTSC and Use "NES" for Chinese text * Revert z_kanfont
2024-12-15Use iconv from Homebrew on macOS (#2374)cadmic
* Use iconv from Homebrew on macOS * Use `brew --prefix`
2024-12-15Remove ‾ character from source files (#2371)cadmic
2024-12-13[Audio 10/10] Loose ends (#2337)Tharo
* Introduce afile_sizes, generate headers of sizes for soundfonts and sequences * Initial tools/audio README * Versioning for samplebank extraction * Clean up the disassemble_sequence.py runnable interface * Add static assertions for maximum bank sizes * Boost optimization for audio tools * Samplebank XML doc * Soundfont XML doc * More docs in sampleconv for vadpcm * Various tools fixes/cleanup * VADPCM doc * Try to fix md formatting * VADPCM doc can come later * Fix merge with PR 9 * Fix blobs from MM * Try to fix bss * Try fix bss round 2 * Fix sampleconv memset bug * Suggested documentation tweaks
2024-12-13Naming cutscenes from Lon-Lon Ranch (#2359)Yanis
* name cs from ranch * fixed llr credits cs dest part 5 and 6 being inverted * format
2024-12-11Rename EVENTCHKINF_69 (#2330)Jordan Longstaff
* Rename EVENTCHKINF_69 * Rename CS flag
2024-12-10Rename symbols related to Kakariko Well being drained (#2332)Jordan Longstaff
2024-12-08Add names for Medallion cutscene data (#2319)Jordan Longstaff
* Add names for Medallion cutscene data * Rename to Cs at end
2024-12-04Name asset extraction tools more consistently (#2316)cadmic
2024-12-04Rename and document Adult Ruto functions (#2288)Jordan Longstaff
* Rename and document Adult Ruto functions * Rename struct fields also * Add enums for Ruto actions and draw configs * Proper name for Water Medallion cutscene data * Suggested changes * More suggested changes * Bring back naming consistency * Better documentation for EnRu2_CheckWaterMedallionCutscene Co-authored-by: fig02 <fig02srl@gmail.com> * Renaming suggestions * Rename EnRu2_AccelerateUp * Revert macros * Actually, fix macros * Remove extra blank line * Rename macros with GET --------- Co-authored-by: fig02 <fig02srl@gmail.com>