summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
16 hours[rsp] Introduce microcode build process, disassemble and build both rspboot ↵HEADmainTharo
versions (#2764) * [rsp] Introduce microcode build process, disassemble and build both rspboot versions * Suggested changes * Check-in tool for generating armips.cpp from upstream sources, regen armips.cpp against a newer commit * License armips_gen.py, add notice that armips.cpp is automatically generated * Qualify comment with X105 * Clarify the assumed purpose of rspboot releasing SP_SEMAPHORE
2026-06-08Automatically detect other common MIPS toolchains, update build dependencies ↵Tharo
in README (#2765) * Automatically detect other common MIPS toolchains, update build dependencies in README * Swap N64_GCCPREFIX and N64_INST for libdragon toolchain detection
2026-05-06Partial linking of spec segments (#2661)Tharo
* Partial linking of overlay segments, relax linker script alignment * Partial linking of all spec segments * Fix update, remove _RomPos from linker script * iQue version working pending COM-plugin update * Add plf map file resolution to sym_info.py, local symbol merging is broken * git subrepo pull tools/com-plugin subrepo: subdir: "tools/com-plugin" merged: "c4f3ba845" upstream: origin: "git@github.com:Thar0/com-plugin.git" branch: "main" commit: "c4f3ba845" git-subrepo: version: "0.4.6" origin: "https://github.com/ingydotnet/git-subrepo" commit: "110b9eb" * Make tools compatible with partial linking Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> * Remove unused files * Fix some makefile bits * mkspecrules cleanup * Comment on the makerom linker layout in mkldscript * Revert linker padding strategy back to pad_text spec directives * Comment on objcopy elf -> rom step * Adjust tool descriptions * Fix compressed builds * rm reloc_prereq, no longer used * Makefile merge fix Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> --------- Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2026-04-22Update Makefile versions list (#2741)Dragorn421
2026-04-12Texture software fixups (#2709)Dragorn421
* fixup n64texconv app usage text and check u32|u64 * fix memory leaks in build_from_png * yeet -Werror * Remove n64texconv/ap and create build_jfif * gitignore build_jfif binary, oops * Makefile: Add BUILD_FROM_PNG and BUILD_JFIF variables
2026-04-07oot-gc-eu-dbg-2 OK (#2714)Dragorn421
* oot-gc-eu-dbg-proto OK * add gc-eu-dbg-proto to readme * mention overdump trimming for all debug roms * rename gc-eu-dbg-proto to gc-eu-dbg-2 Rationale: first version to make it into decomp (which should also be the first one that surfaces) gets an un-numbered version name, then the second version gets -2, and so on
2026-03-02gc-eu-dbg OK (#2700)Dragorn421
* gc-eu-dbg OK * cleanup/fortify makefile and line_numbers.h changes * fill segments.csv * add gc-eu-dbg to Jenkinsfile * cleanup/fortify dmadata_table.h * add gc-eu-dbg to readme * fix checksum check and compressed checksum
2026-02-22Fix F3DEX2 ucode name on N64 versions (not PosLight) (#2701)Dragorn421
* Fix F3DEX2 ucode name on N64 versions (not PosLight) * put the not-PosLight / PosLight differences under F3DEX_GBI_PL * revert bss changes
2026-02-22Fix misc 23 (#2699)Dragorn421
* remove noop macros Fault_SetFontColor Fault_SetCharPad under PLATFORM_N64 * remove duplicate declarations in sfx.h * use render mode presets more * decimal for alpha values * fix some z_camera comments typos * fix references to preprocess.sh (used to be preprocess.py) * remove outdated comment on deps in makefile * code_800AD920 was renamed to z_viszbuf * fix capitalization typo: gOcarinaofTimeDesignTex -> gOcarinaOfTimeDesignTex * fix typo: gLinkAdultEyesClosedfTex, gLinkChildEyesClosedfTex -> remove extra f * fix typo: gCrstalSwitchRedTex, gCrstalSwitchBlueTex -> gCrystal * fix PARAMS_GET_U amount of bits
2025-06-08.d files: use -MP (fixes make with deleted deps) (#2615)Dragorn421
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-01Restructure audio source files (#2520)fig02
* restructure audio files * fix
2025-04-28Use cpp for soundfont dependencies (#2519)Tharo
2025-04-28Add makefile dependencies for all build objects (#2517)Tharo
* Add makefile dependencies for all build objects * Fix generating encoded message headers
2025-03-27Seperate baserom segments dir from output dir (#2498)Derek Hensley
2025-03-01Unbreak gcc builds (#2493)Tharo
2025-02-23Macroify MML opcodes (#2485)Dragorn421
* add defines for sequence opcodes * name aseq_cmd_id defines from the corresponding macro names * ASEQ_CMD_ID_ -> ASEQ_OPC_ * remove previous opcode defines * ASEQ_OPC_LAYER_STEP3_ -> ASEQ_OPC_LAYER_ * sync with MM and fixups * format * ASEQ_OPC_ -> ASEQ_OP_ * ASEQ_OP_CTRLFLOW_ -> ASEQ_OP_ * tab-align * ASEQ_OP_SEQUENCE_ -> ASEQ_OP_SEQ_ * ASEQ_OP_CHANNEL_ -> ASEQ_OP_CHAN_ * define MML_VERSION in the Makefile for seqplayer.c
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-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-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-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-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-28spec_includes/ -> spec/, spec -> spec/spec (#2422)Dragorn421
2025-01-21[iQue] Match z_message (#2435)cadmic
* [iQue] z_message: work around EGCS bug * [iQue] z_message: finish matching * Yabusame -> Horseback archery * Add missing PRINTF parameter * Collapse for loops * Better-looking macros * gold stars -> gold skulls
2025-01-21[iQue] Import libultra audio library files (#2433)Tharo
Note about comments in these files: The libultra audio library was originally available to developers in source code form, unlike most of libultra. These files are based on these source code forms, adapted to meet the style of this project. The comments in the files as of this commit are, apart from the style, comments from the original SGI authors.
2025-01-19[iQue] Match z_actor (#2431)cadmic
* [iQue] Match z_actor * Reword comment
2025-01-19[iQue] Don't use -funsigned-char for z_std_dma (#2427)cadmic
2025-01-19[iQue] Match z_kanfont (#2428)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-13[iQue] Define EGCS macro instead of relying on `__GNUC__` (#2423)cadmic
* [iQue] Define EGCS macro instead of relying on __GNUC__ * Revert longlong.h
2025-01-11[iQue] Use CPP includes in spec and update for iQue (#2399)cadmic
* Update spec for iQue * Use CPP includes for spec overlays, scenes, and libultra * Fix iQue + DEBUG_FEATURES * Define BBPLAYER, merge function definitions * Add Makefile dependency on spec_includes * Fix libc order for iQue * Match src/libultra/bb/sa/common.c to fix linker errors * Use C versions of getcount/setcompare for iQue * Format * Small fixes to line up boot segment * Remove zlib.c
2025-01-10[iQue] Match remaining libultra/os files (#2414)Tharo
* Match remaining libultra/os files * Align box id macros * Fix bss, format * Fix BSS * Clarify some comments * More bug comment * Comment * Fix BSS
2025-01-10[iQue] Update permuter/decompme import (#2415)cadmic
* [iQue] Update permuter/decompme import * Fix GCC build
2025-01-10Fix circular Makefile dependency with assets/text/*.o (#2419)cadmic
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-10Only build .o files listed in the spec (#2410)cadmic
* Only build .o files listed in the spec * Remove useless CPP guards
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-08[iQue] Create/update macros for printing debug strings (#2398)cadmic
2025-01-07[iQue] Match libultra/libc (#2407)Tharo
2025-01-06[iQue] Match src/libc (#2405)cadmic
2025-01-06[iQue] Match exceptasm.s and parameters.s (#2401)Tharo
2025-01-06Match remaining IDO files for iQue (#2394)cadmic
2025-01-03[iQue] Match skapi.s, create bbskapi.h documenting the syscalls (#2400)Tharo
2025-01-02[iQue] Match makerom (#2397)Tharo
2025-01-02[iQue] Build some C files with EGCS (#2396)cadmic
2024-12-28Use IDO for assembling handwritten asm files in src (#2390)Tharo
* as0 * Fix ASOPTFLAGS for src/libc, remove unnecessary noreorder region in kanread * Suggested changes * Use %half to load the boot bss size for matching Co-authored-by: cadmic <cadmic24@gmail.com> * Wrap all of __osProbeTLB in noreorder --------- Co-authored-by: cadmic <cadmic24@gmail.com>
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