From 1ba2d6d0f99af61187698da602aeca85793284e6 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Tue, 13 Feb 2024 02:20:25 +0100 Subject: [PATCH] Rework disassembly: out of makefile, separate sections, relocs (#1728) * 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) --- Makefile | 20 +- include/macro.inc | 7 + requirements.txt | 2 +- tools/disasm/disasm.py | 121 ++- tools/disasm/do_disasm.sh | 55 ++ tools/disasm/gc-eu-mq/files_boot.csv | 254 ++--- tools/disasm/gc-eu-mq/files_code.csv | 904 +++++++++--------- .../disasm/gc-eu-mq/files_ovl_file_choose.csv | 24 +- .../gc-eu-mq/files_ovl_kaleido_scope.csv | 48 +- tools/disasm/list_generated_files.py | 62 -- 10 files changed, 753 insertions(+), 744 deletions(-) create mode 100755 tools/disasm/do_disasm.sh delete mode 100755 tools/disasm/list_generated_files.py diff --git a/Makefile b/Makefile index 5f9ae59d56..34e198cb3b 100644 --- a/Makefile +++ b/Makefile @@ -181,10 +181,6 @@ endif OBJDUMP_FLAGS := -d -r -z -Mreg-names=32 -DISASM_DATA_DIR := tools/disasm/$(VERSION) -DISASM_FLAGS += --custom-suffix _unknown --sequential-label-names --no-use-fpccsr --no-cop0-named-registers -DISASM_FLAGS += --config-dir $(DISASM_DATA_DIR) --symbol-addrs $(DISASM_DATA_DIR)/functions.txt --symbol-addrs $(DISASM_DATA_DIR)/variables.txt - #### Files #### # ROM image @@ -223,11 +219,6 @@ O_FILES := $(foreach f,$(S_FILES:.s=.o),$(BUILD_DIR)/$f) \ OVL_RELOC_FILES := $(shell $(CPP) $(CPPFLAGS) $(SPEC) | $(SPEC_REPLACE_VARS) | grep -o '[^"]*_reloc.o' ) -DISASM_BASEROM := $(BASEROM_DIR)/baserom-decompressed.z64 -DISASM_DATA_FILES := $(wildcard $(DISASM_DATA_DIR)/*.csv) $(wildcard $(DISASM_DATA_DIR)/*.txt) -DISASM_S_FILES := $(shell test -e $(PYTHON) && $(PYTHON) tools/disasm/list_generated_files.py -o $(EXPECTED_DIR) --config-dir $(DISASM_DATA_DIR)) -DISASM_O_FILES := $(DISASM_S_FILES:.s=.o) - # Automatic dependency files # (Only asm_processor dependencies and reloc dependencies are handled for now) DEP_FILES := $(O_FILES:.o=.asmproc.d) $(OVL_RELOC_FILES:.o=.d) @@ -373,7 +364,9 @@ ifeq ($(VERSION),gc-eu-mq-dbg) $(PYTHON) tools/msgdis.py --text-out assets/text/message_data.h --staff-text-out assets/text/message_data_staff.h endif -disasm: $(DISASM_O_FILES) +disasm: + $(RM) -r $(EXPECTED_DIR) + VERSION=$(VERSION) DISASM_BASEROM=$(BASEROM_DIR)/baserom-decompressed.z64 DISASM_DIR=$(EXPECTED_DIR) PYTHON=$(PYTHON) AS_CMD='$(AS) $(ASFLAGS)' LD=$(LD) ./tools/disasm/do_disasm.sh run: $(ROM) ifeq ($(N64_EMULATOR),) @@ -495,13 +488,6 @@ $(BUILD_DIR)/assets/%.bin.inc.c: assets/%.bin $(BUILD_DIR)/assets/%.jpg.inc.c: assets/%.jpg $(ZAPD) bren -eh -i $< -o $@ -$(EXPECTED_DIR)/.disasm: $(DISASM_DATA_FILES) - $(PYTHON) tools/disasm/disasm.py $(DISASM_FLAGS) $(DISASM_BASEROM) -o $(EXPECTED_DIR) --split-functions $(EXPECTED_DIR)/functions - touch $@ - -$(EXPECTED_DIR)/%.o: $(EXPECTED_DIR)/.disasm - iconv --from UTF-8 --to EUC-JP $(@:.o=.s) | $(AS) $(ASFLAGS) -o $@ - -include $(DEP_FILES) # Print target for debugging diff --git a/include/macro.inc b/include/macro.inc index b153bc5449..882093744c 100644 --- a/include/macro.inc +++ b/include/macro.inc @@ -1,3 +1,8 @@ +# Evaluate this file only once in case it's included more than once +.ifndef _MACRO_INC_GUARD +.internal _MACRO_INC_GUARD +.set _MACRO_INC_GUARD, 1 + .macro glabel label .global \label \label: @@ -47,3 +52,5 @@ .set $fs4f, $f29 .set $fs5, $f30 .set $fs5f, $f31 + +.endif diff --git a/requirements.txt b/requirements.txt index 677bf2d3e5..05d86d39cf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,4 +16,4 @@ toml # tools mapfile-parser>=1.2.1,<2.0.0 rabbitizer>=1.0.0,<2.0.0 -spimdisasm>=1.20.0,<2.0.0 +spimdisasm>=1.21.0,<2.0.0 diff --git a/tools/disasm/disasm.py b/tools/disasm/disasm.py index 1471a7e131..9435f3cd2c 100755 --- a/tools/disasm/disasm.py +++ b/tools/disasm/disasm.py @@ -3,13 +3,13 @@ # SPDX-FileCopyrightText: © 2024 ZeldaRET # SPDX-License-Identifier: CC0-1.0 +from __future__ import annotations + import argparse -import collections from pathlib import Path from typing import BinaryIO import spimdisasm -from spimdisasm import frontendCommon as fec from file_addresses import DmaFile, parse_file_addresses, get_z_name_for_overlay @@ -23,18 +23,18 @@ def load_file_splits( # Assume that we're reading from a decompressed ROM where the DMA file is # now located at the same ROM offset as the VROM start f.seek(dma_file.vrom_start) - data = bytearray(f.read(dma_file.vrom_end - dma_file.vrom_start)) + data = f.read(dma_file.vrom_end - dma_file.vrom_start) file_splits_path = config_dir / f"files_{dma_file.name}.csv" if file_splits_path.exists(): - default_filename = "" + default_filename = dma_file.name splits_data = spimdisasm.common.FileSplitFormat() splits_data.readCsvFile(file_splits_path) reloc_section = None elif dma_file.overlay_dir is not None: z_name = get_z_name_for_overlay(dma_file.name) default_filename = ( - f"src/overlays/{dma_file.overlay_dir}/{dma_file.name}/{z_name}.s" + f"src/overlays/{dma_file.overlay_dir}/{dma_file.name}/{z_name}" ) splits_data = None reloc_section = spimdisasm.mips.sections.SectionRelocZ64( @@ -42,7 +42,7 @@ def load_file_splits( vromStart=0, vromEnd=len(data), vram=dma_file.vram_start, - filename=default_filename, + filename=f"src/overlays/{dma_file.overlay_dir}/{dma_file.name}/{dma_file.name}", array_of_bytes=data, segmentVromStart=0, overlayCategory=None, @@ -94,62 +94,85 @@ def main(): spimdisasm.mips.InstructionConfig.parseArgs(args) spimdisasm.common.GlobalConfig.parseArgs(args) - spimdisasm.common.GlobalConfig.ASM_USE_PRELUDE = False spimdisasm.common.GlobalConfig.PRODUCE_SYMBOLS_PLUS_OFFSET = True spimdisasm.common.GlobalConfig.TRUST_USER_FUNCTIONS = True dma_files = parse_file_addresses(args.config_dir / "file_addresses.csv") - output_files = collections.defaultdict(list) + print("Loading disasm info...") + all_file_splits: list[spimdisasm.mips.FileSplits] = [] with open(args.rom, "rb") as f: for dma_file in dma_files: file_splits = load_file_splits(context, args.config_dir, dma_file, f) + all_file_splits.append(file_splits) - for section_type, files in file_splits.sectionsDict.items(): - # TODO: disassemble overlay reloc sections? - if section_type == spimdisasm.common.FileSectionType.Reloc: - continue + print("Analyzing...") + for i, file_splits in enumerate(all_file_splits): + f = i / len(all_file_splits) + spimdisasm.common.Utils.printQuietless( + f"{f*100:3.0f}%", "Analyzing", file_splits.name, end=" \r" + ) + file_splits.analyze() + print() + print("Analyzing done.") - for path, section in files.items(): - output_files[path].append(section) + print("Writing disassembled sections...") + output_dir: Path = args.output_dir + output_dir.mkdir(parents=True, exist_ok=True) + for i, file_splits in enumerate(all_file_splits): + f = i / len(all_file_splits) + spimdisasm.common.Utils.printQuietless( + f"{f*100:3.0f}%", "Writing", file_splits.name, end=" \r" + ) + for sectDict in file_splits.sectionsDict.values(): + for name, section in sectDict.items(): + basepath = output_dir / name + basepath.parent.mkdir(parents=True, exist_ok=True) + if section.sectionType == spimdisasm.common.FileSectionType.Reloc: + # basepath is like + # .../ovl_Overlay_Name/z_overlay_name + # and we want to write relocs to + # .../ovl_Overlay_Name/ovl_Overlay_Name_reloc.s + path = basepath.parent / f"{basepath.parent.name}_reloc.s" + with path.open("w", encoding="UTF-8") as f: + section.disassembleToFile(f) + else: + section.saveToFile(str(basepath)) + print() + print("Writing sections done.") - for path, sections in sorted(output_files.items()): - spimdisasm.common.Utils.printQuietless(f"Analyzing {path} ...") - for section in sections: - section.analyze() + if args.split_functions is not None: + print("Writing disassembled functions individually...") + for i, file_splits in enumerate(all_file_splits): + f = i / len(all_file_splits) + spimdisasm.common.Utils.printQuietless( + f"{f*100:3.0f}%", "Writing", file_splits.name, end=" \r" + ) - for path, sections in sorted(output_files.items()): - spimdisasm.common.Utils.printQuietless(f"Writing {path} ...") - output_path = args.output_dir / path - output_path.parent.mkdir(parents=True, exist_ok=True) - with open(output_path, "w") as f: - f.write('.include "macro.inc"\n') - f.write("\n") - f.write(".set noat\n") - f.write(".set noreorder\n") - f.write(".set gp=64\n") - for section in sections: - f.write("\n") - f.write(f".section {section.sectionType.toStr()}\n") - f.write("\n") - f.write(f".align 4\n") - f.write("\n") - section.disassembleToFile(f) - - if args.split_functions is not None: - rodata_list = [] - for section in sections: - if section.sectionType == spimdisasm.common.FileSectionType.Rodata: - rodata_list.append(section) - - for section in sections: - if section.sectionType != spimdisasm.common.FileSectionType.Text: - continue - output_dir = (args.split_functions / section.name).with_suffix("") - for func in section.symbolList: - spimdisasm.mips.FilesHandlers.writeSplitedFunction( - output_dir, func, rodata_list + for section_name, text_section in file_splits.sectionsDict[ + spimdisasm.common.FileSectionType.Text + ].items(): + rodata_section = file_splits.sectionsDict[ + spimdisasm.common.FileSectionType.Rodata + ].get(section_name) + # FunctionRodataEntry represents a function, + # plus any associated rodata (strings, floats, jump tables...) + # It can also be rodata that hasn't been associated to any function + for ( + func_rodata_entry + ) in spimdisasm.mips.FunctionRodataEntry.getAllEntriesFromSections( + text_section, rodata_section + ): + output_dir = ( + args.split_functions + / section_name + / f"{func_rodata_entry.getName()}.s" ) + output_dir.parent.mkdir(parents=True, exist_ok=True) + with output_dir.open("w", encoding="UTF-8") as f: + func_rodata_entry.writeToFile(f, writeFunction=True) + print() + print("Writing functions done.") if __name__ == "__main__": diff --git a/tools/disasm/do_disasm.sh b/tools/disasm/do_disasm.sh new file mode 100755 index 0000000000..0c7c5e9cc8 --- /dev/null +++ b/tools/disasm/do_disasm.sh @@ -0,0 +1,55 @@ +#!/bin/bash +set -eu -o pipefail + +if [ "${VERBOSE-}" ] +then +echo "$VERSION" +echo "$DISASM_DIR" +echo "$DISASM_BASEROM" +echo "$PYTHON" +echo "$AS_CMD" +echo "$LD" +set -x +fi + +DISASM_DATA_DIR="tools/disasm/$VERSION" +DISASM_FLAGS="--custom-suffix _unknown --sequential-label-names --no-use-fpccsr --no-cop0-named-registers" +DISASM_FLAGS="$DISASM_FLAGS --config-dir $DISASM_DATA_DIR --symbol-addrs $DISASM_DATA_DIR/functions.txt --symbol-addrs $DISASM_DATA_DIR/variables.txt" + +echo Disassembling... +cmd="$PYTHON tools/disasm/disasm.py $DISASM_FLAGS $DISASM_BASEROM -o $DISASM_DIR --split-functions $DISASM_DIR/functions" +echo "$cmd" +$cmd || ( + echo + echo Error on disassembling. + false +) +echo Disassembling done. + +echo Assembling text,data,rodata,bss sections together for each file... +for filebase in `find $DISASM_DIR -name '*.s' | sed -E -n 's/\.(text|data|rodata|bss)\.s$//p' | sort | uniq` +do + printf '%s \r' "$filebase" + files= + for section in text data rodata bss + do + file="$filebase.$section.s" + if [ -e $file ] + then + files="$files $file" + fi + done + iconv_cmd="iconv -f UTF-8 -t EUC-JP $files" + asfile_cmd="$AS_CMD -o $filebase.o --" + ( $iconv_cmd | $asfile_cmd ) || ( + echo + echo Error on assembling: + echo "$filebase" + echo Command line: + echo "$iconv_cmd | $asfile_cmd" + false + ) +done +echo + +echo All done! diff --git a/tools/disasm/gc-eu-mq/files_boot.csv b/tools/disasm/gc-eu-mq/files_boot.csv index fb7cd3cbd2..74b3eb5213 100644 --- a/tools/disasm/gc-eu-mq/files_boot.csv +++ b/tools/disasm/gc-eu-mq/files_boot.csv @@ -1,135 +1,135 @@ offset,vram,.text -0,80000460,src/boot/boot_main.s -140,800005A0,src/boot/idle.s -3D0,80000830,src/boot/viconfig.s -520,80000980,src/boot/z_std_dma.s -B60,80000FC0,src/boot/yaz0.s -EA0,80001300,src/boot/z_locale.s -F60,800013C0,src/boot/is_debug.s -FC0,80001420,src/libultra/io/driverominit.s -11A0,80001600,src/boot/mio0.s -1250,800016B0,src/boot/stackcheck.s -14A0,80001900,src/boot/logutils.s -1500,80001960,src/libultra/io/piacs.s -15C0,80001A20,src/libultra/os/sendmesg.s -1710,80001B70,src/libultra/os/stopthread.s -17D0,80001C30,src/libultra/io/viextendvstart.s -17E0,80001C40,src/libultra/os/recvmesg.s -1920,80001D80,src/libultra/os/initialize.s -1C70,800020D0,src/libultra/libc/ll.s -1F30,80002390,src/libultra/os/exceptasm.s -2860,80002CC0,src/libultra/os/thread.s -28A0,80002D00,src/libultra/os/destroythread.s -29B0,80002E10,src/libultra/libc/bzero.s -2A50,80002EB0,src/libultra/os/parameters.s -2AB0,80002F10,src/libultra/os/createthread.s -2C00,80003060,src/libultra/os/setsr.s -2C10,80003070,src/libultra/os/getsr.s -2C20,80003080,src/libultra/os/writebackdcache.s -2CA0,80003100,src/libultra/io/vigetnextframebuf.s -2CE0,80003140,src/libultra/io/pimgr.s -2E60,800032C0,src/libultra/io/devmgr.s -3270,800036D0,src/libultra/io/pirawdma.s -3340,800037A0,src/libultra/os/virtualtophysical.s -33C0,80003820,src/libultra/io/viblack.s -3430,80003890,src/libultra/io/sirawread.s -3480,800038E0,src/libultra/os/getthreadid.s -34A0,80003900,src/libultra/os/setintmask.s -3540,800039A0,src/libultra/io/visetmode.s -35A0,80003A00,src/libultra/os/probetlb.s -3660,80003AC0,src/libultra/os/getmemsize.s -3780,80003BE0,src/libultra/os/seteventmesg.s -3840,80003CA0,src/libultra/os/unmaptlball.s -3890,80003CF0,src/libultra/io/epidma.s -3930,80003D90,src/libultra/os/invalicache.s -39B0,80003E10,src/libultra/os/createmesgqueue.s -39E0,80003E40,src/libultra/os/invaldcache.s -3A90,80003EF0,src/libultra/io/si.s -3AC0,80003F20,src/libultra/os/jammesg.s -3C10,80004070,src/libultra/os/setthreadpri.s -3CF0,80004150,src/libultra/os/getthreadpri.s -3D10,80004170,src/libultra/io/epirawread.s -3E70,800042D0,src/libultra/io/viswapbuf.s -3EC0,80004320,src/libultra/io/epirawdma.s -40A0,80004500,src/libultra/libc/bcmp.s -41C0,80004620,src/libultra/os/gettime.s -4250,800046B0,src/libultra/os/timerintr.s -4680,80004AE0,src/libultra/os/getcount.s -4690,80004AF0,src/libultra/os/setglobalintmask.s -46E0,80004B40,src/libultra/os/setcompare.s -46F0,80004B50,src/libultra/libc/bcopy.s -4A00,80004E60,src/libultra/os/resetglobalintmask.s -4A60,80004EC0,src/libultra/os/interrupt.s -4AF0,80004F50,src/libultra/io/vi.s -4C10,80005070,src/libultra/io/viswapcontext.s -4F10,80005370,src/libultra/io/pigetcmdq.s -4F40,800053A0,src/libultra/io/epiread.s -4F90,800053F0,src/libultra/io/visetspecial.s -50F0,80005550,src/libultra/io/cartrominit.s -5250,800056B0,src/libultra/os/setfpccsr.s -5260,800056C0,src/libultra/os/getfpccsr.s -5270,800056D0,src/libultra/os/maptlbrdb.s -52D0,80005730,src/libultra/os/yieldthread.s -5320,80005780,src/libultra/os/getcause.s -5330,80005790,src/libultra/io/epirawwrite.s -5490,800058F0,src/libultra/io/sirawwrite.s -54E0,80005940,src/libultra/io/vimgr.s -57F0,80005C50,src/libultra/io/vigetcurrcontext.s -5800,80005C60,src/libultra/os/startthread.s -5950,80005DB0,src/libultra/io/visetyscale.s -59A0,80005E00,src/libultra/io/visetxscale.s -5AB0,80005F10,src/libultra/os/sethwintrroutine.s -5B20,80005F80,src/libultra/os/gethwintrroutine.s -5B50,80005FB0,src/libultra/os/setwatchlo.s -5B60,80005FC0,data/rsp_boot.text.s +0,80000460,src/boot/boot_main +140,800005A0,src/boot/idle +3D0,80000830,src/boot/viconfig +520,80000980,src/boot/z_std_dma +B60,80000FC0,src/boot/yaz0 +EA0,80001300,src/boot/z_locale +F60,800013C0,src/boot/is_debug +FC0,80001420,src/libultra/io/driverominit +11A0,80001600,src/boot/mio0 +1250,800016B0,src/boot/stackcheck +14A0,80001900,src/boot/logutils +1500,80001960,src/libultra/io/piacs +15C0,80001A20,src/libultra/os/sendmesg +1710,80001B70,src/libultra/os/stopthread +17D0,80001C30,src/libultra/io/viextendvstart +17E0,80001C40,src/libultra/os/recvmesg +1920,80001D80,src/libultra/os/initialize +1C70,800020D0,src/libultra/libc/ll +1F30,80002390,src/libultra/os/exceptasm +2860,80002CC0,src/libultra/os/thread +28A0,80002D00,src/libultra/os/destroythread +29B0,80002E10,src/libultra/libc/bzero +2A50,80002EB0,src/libultra/os/parameters +2AB0,80002F10,src/libultra/os/createthread +2C00,80003060,src/libultra/os/setsr +2C10,80003070,src/libultra/os/getsr +2C20,80003080,src/libultra/os/writebackdcache +2CA0,80003100,src/libultra/io/vigetnextframebuf +2CE0,80003140,src/libultra/io/pimgr +2E60,800032C0,src/libultra/io/devmgr +3270,800036D0,src/libultra/io/pirawdma +3340,800037A0,src/libultra/os/virtualtophysical +33C0,80003820,src/libultra/io/viblack +3430,80003890,src/libultra/io/sirawread +3480,800038E0,src/libultra/os/getthreadid +34A0,80003900,src/libultra/os/setintmask +3540,800039A0,src/libultra/io/visetmode +35A0,80003A00,src/libultra/os/probetlb +3660,80003AC0,src/libultra/os/getmemsize +3780,80003BE0,src/libultra/os/seteventmesg +3840,80003CA0,src/libultra/os/unmaptlball +3890,80003CF0,src/libultra/io/epidma +3930,80003D90,src/libultra/os/invalicache +39B0,80003E10,src/libultra/os/createmesgqueue +39E0,80003E40,src/libultra/os/invaldcache +3A90,80003EF0,src/libultra/io/si +3AC0,80003F20,src/libultra/os/jammesg +3C10,80004070,src/libultra/os/setthreadpri +3CF0,80004150,src/libultra/os/getthreadpri +3D10,80004170,src/libultra/io/epirawread +3E70,800042D0,src/libultra/io/viswapbuf +3EC0,80004320,src/libultra/io/epirawdma +40A0,80004500,src/libultra/libc/bcmp +41C0,80004620,src/libultra/os/gettime +4250,800046B0,src/libultra/os/timerintr +4680,80004AE0,src/libultra/os/getcount +4690,80004AF0,src/libultra/os/setglobalintmask +46E0,80004B40,src/libultra/os/setcompare +46F0,80004B50,src/libultra/libc/bcopy +4A00,80004E60,src/libultra/os/resetglobalintmask +4A60,80004EC0,src/libultra/os/interrupt +4AF0,80004F50,src/libultra/io/vi +4C10,80005070,src/libultra/io/viswapcontext +4F10,80005370,src/libultra/io/pigetcmdq +4F40,800053A0,src/libultra/io/epiread +4F90,800053F0,src/libultra/io/visetspecial +50F0,80005550,src/libultra/io/cartrominit +5250,800056B0,src/libultra/os/setfpccsr +5260,800056C0,src/libultra/os/getfpccsr +5270,800056D0,src/libultra/os/maptlbrdb +52D0,80005730,src/libultra/os/yieldthread +5320,80005780,src/libultra/os/getcause +5330,80005790,src/libultra/io/epirawwrite +5490,800058F0,src/libultra/io/sirawwrite +54E0,80005940,src/libultra/io/vimgr +57F0,80005C50,src/libultra/io/vigetcurrcontext +5800,80005C60,src/libultra/os/startthread +5950,80005DB0,src/libultra/io/visetyscale +59A0,80005E00,src/libultra/io/visetxscale +5AB0,80005F10,src/libultra/os/sethwintrroutine +5B20,80005F80,src/libultra/os/gethwintrroutine +5B50,80005FB0,src/libultra/os/setwatchlo +5B60,80005FC0,data/rsp_boot.text offset,vram,.data -5C30,80006090,data/unk_800093F0.data.s -5C50,800060B0,data/unk_80009410.data.s -5C70,800060D0,src/boot/idle.s -5C90,800060F0,src/boot/viconfig.s -5CA0,80006100,src/boot/z_std_dma.s -5CB0,80006110,src/boot/z_locale.s -5CC0,80006120,src/libultra/io/driverominit.s -5CD0,80006130,src/boot/stackcheck.s -5CE0,80006140,src/libultra/io/piacs.s -5CF0,80006150,src/libultra/io/vimodepallan1.s -5D40,800061A0,src/libultra/os/initialize.s -5D60,800061C0,src/libultra/os/exceptasm.s -5D90,800061F0,src/libultra/os/thread.s -5DB0,80006210,src/libultra/io/pimgr.s -5DE0,80006240,src/libultra/os/seteventmesg.s -5DF0,80006250,src/libultra/os/timerintr.s -5E00,80006260,src/libultra/io/vimodentsclan1.s -5E50,800062B0,src/libultra/io/vimodempallan1.s -5EA0,80006300,src/libultra/io/vi.s -5F10,80006370,src/libultra/io/cartrominit.s -5F20,80006380,src/libultra/io/vimgr.s +5C30,80006090,data/unk_800093F0.data +5C50,800060B0,data/unk_80009410.data +5C70,800060D0,src/boot/idle +5C90,800060F0,src/boot/viconfig +5CA0,80006100,src/boot/z_std_dma +5CB0,80006110,src/boot/z_locale +5CC0,80006120,src/libultra/io/driverominit +5CD0,80006130,src/boot/stackcheck +5CE0,80006140,src/libultra/io/piacs +5CF0,80006150,src/libultra/io/vimodepallan1 +5D40,800061A0,src/libultra/os/initialize +5D60,800061C0,src/libultra/os/exceptasm +5D90,800061F0,src/libultra/os/thread +5DB0,80006210,src/libultra/io/pimgr +5DE0,80006240,src/libultra/os/seteventmesg +5DF0,80006250,src/libultra/os/timerintr +5E00,80006260,src/libultra/io/vimodentsclan1 +5E50,800062B0,src/libultra/io/vimodempallan1 +5EA0,80006300,src/libultra/io/vi +5F10,80006370,src/libultra/io/cartrominit +5F20,80006380,src/libultra/io/vimgr offset,vram,.rodata -5F40,800063A0,src/boot/boot_main.s -5F50,800063B0,src/boot/idle.s -5F60,800063C0,src/boot/z_std_dma.s -5FC0,80006420,src/boot/z_locale.s -5FD0,80006430,src/boot/stackcheck.s -5FE0,80006440,src/boot/logutils.s -5FF0,80006450,src/libultra/os/exceptasm.s -6040,800064A0,src/libultra/io/devmgr.s -6060,800064C0,src/libultra/os/setintmask.s -60E0,80006540,src/boot/build.s +5F40,800063A0,src/boot/boot_main +5F50,800063B0,src/boot/idle +5F60,800063C0,src/boot/z_std_dma +5FC0,80006420,src/boot/z_locale +5FD0,80006430,src/boot/stackcheck +5FE0,80006440,src/boot/logutils +5FF0,80006450,src/libultra/os/exceptasm +6040,800064A0,src/libultra/io/devmgr +6060,800064C0,src/libultra/os/setintmask +60E0,80006540,src/boot/build offset,vram,.bss -6110,80006570,src/boot/boot_main.s -6B00,80006F60,src/boot/idle.s -7710,80007B70,src/boot/z_std_dma.s -7E80,800082E0,src/boot/yaz0.s -8290,800086F0,src/boot/z_locale.s -82B0,80008710,src/libultra/io/driverominit.s -8330,80008790,src/libultra/io/piacs.s -8350,800087B0,src/libultra/os/initialize.s -8360,800087C0,src/libultra/io/pimgr.s -97D0,80009C30,src/libultra/os/seteventmesg.s -9850,80009CB0,src/libultra/os/timerintr.s -9890,80009CF0,src/libultra/io/cartrominit.s -9910,80009D70,src/libultra/io/vimgr.s +6110,80006570,src/boot/boot_main +6B00,80006F60,src/boot/idle +7710,80007B70,src/boot/z_std_dma +7E80,800082E0,src/boot/yaz0 +8290,800086F0,src/boot/z_locale +82B0,80008710,src/libultra/io/driverominit +8330,80008790,src/libultra/io/piacs +8350,800087B0,src/libultra/os/initialize +8360,800087C0,src/libultra/io/pimgr +97D0,80009C30,src/libultra/os/seteventmesg +9850,80009CB0,src/libultra/os/timerintr +9890,80009CF0,src/libultra/io/cartrominit +9910,80009D70,src/libultra/io/vimgr AB30,8000AF90,.end diff --git a/tools/disasm/gc-eu-mq/files_code.csv b/tools/disasm/gc-eu-mq/files_code.csv index b62bd56945..9de88579f9 100644 --- a/tools/disasm/gc-eu-mq/files_code.csv +++ b/tools/disasm/gc-eu-mq/files_code.csv @@ -1,464 +1,464 @@ offset,vram,.text -0,80010F00,src/code/z_en_a_keep.s -AA0,800119A0,src/code/z_en_item00.s -2EA0,80013DA0,src/code/z_eff_blure.s -62D0,800171D0,src/code/z_eff_shield_particle.s -7930,80018830,src/code/z_eff_spark.s -8FE0,80019EE0,src/code/z_eff_ss_dead.s -9790,8001A690,src/code/z_effect.s -9F10,8001AE10,src/code/z_effect_soft_sprite.s -A9B0,8001B8B0,src/code/z_effect_soft_sprite_old_init.s -D4D0,8001E3D0,src/code/flg_set.s -D8F0,8001E7F0,src/code/z_DLF.s -DB40,8001EA40,src/code/z_actor.s -1A0C0,8002AFC0,src/code/z_actor_dlftbls.s -1A210,8002B110,src/code/z_bgcheck.s -23DF0,80034CF0,src/code/code_800430A0.s -24110,80035010,src/code/code_80043480.s -244A0,800353A0,src/code/z_camera.s -38AD0,800499D0,src/code/z_collision_btltbls.s -38B30,80049A30,src/code/z_collision_check.s -407B0,800516B0,src/code/z_common_data.s -40830,80051730,src/code/z_debug.s -40B40,80051A40,src/code/z_debug_display.s -41000,80051F00,src/code/z_demo.s -45CE0,80056BE0,src/code/code_80069420.s -45D70,80056C70,src/code/z_draw.s -47C70,80058B70,src/code/z_sfx_source.s -47E30,80058D30,src/code/z_elf_message.s -48510,80059410,src/code/z_face_reaction.s -48560,80059460,src/code/code_8006C3A0.s -486E0,800595E0,src/code/z_fcurve_data.s -48920,80059820,src/code/z_fcurve_data_skelanime.s -49130,8005A030,src/code/z_horse.s -49E10,8005AD10,src/code/z_jpeg.s -4A5D0,8005B4D0,src/code/z_kaleido_setup.s -4A9A0,8005B8A0,src/code/z_kanfont.s -4AB70,8005BA70,src/code/z_kankyo.s -52380,80063280,src/code/z_lib.s -53520,80064420,src/code/z_lifemeter.s -548C0,800657C0,src/code/z_lights.s -55960,80066860,src/code/z_malloc.s -55B40,80066A40,src/code/z_map_mark.s -56140,80067040,src/code/z_prenmi_buff.s -56200,80067100,src/code/z_nulltask.s -56280,80067180,src/code/z_olib.s -56970,80067870,src/code/z_onepointdemo.s -5A910,8006B810,src/code/z_map_exp.s -5C4B0,8006D3B0,src/code/z_parameter.s -67BA0,80078AA0,src/code/z_path.s -67D70,80078C70,src/code/z_frame_advance.s -67E20,80078D20,src/code/z_player_lib.s -6B890,8007C790,src/code/z_prenmi.s -6BA30,8007C930,src/code/z_quake.s -6C8A0,8007D7A0,src/code/z_rcp.s -6E160,8007F060,src/code/z_room.s -6F950,80080850,src/code/z_sample.s -6FD50,80080C50,src/code/code_80097A00.s -6FF10,80080E10,src/code/z_scene.s -713C0,800822C0,src/code/z_scene_table.s -77BA0,80088AA0,src/code/z_skelanime.s -7C590,8008D490,src/code/z_skin.s -7D130,8008E030,src/code/z_skin_awb.s -7DA40,8008E940,src/code/z_skin_matrix.s -7EDE0,8008FCE0,src/code/z_sram.s -80220,80091120,src/code/z_ss_sram.s -803F0,800912F0,src/code/z_rumble.s -80670,80091570,src/code/z_view.s -81D70,80092C70,src/code/z_vimode.s -828E0,800937E0,src/code/z_viscvg.s -82A80,80093980,src/code/z_vismono.s -832A0,800941A0,src/code/z_viszbuf.s -83530,80094430,src/code/z_vr_box.s -85E00,80096D00,src/code/z_vr_box_draw.s -864E0,800973E0,src/code/z_player_call.s -86650,80097550,src/code/z_fbdemo.s -87070,80097F70,src/code/z_fbdemo_triforce.s -87630,80098530,src/code/z_fbdemo_wipe1.s -87AA0,800989A0,src/code/z_fbdemo_circle.s -88160,80099060,src/code/z_fbdemo_fade.s -884C0,800993C0,src/code/shrink_window.s -88630,80099530,src/code/code_800BB0A0.s -88B00,80099A00,src/code/z_kaleido_manager.s -88D30,80099C30,src/code/z_kaleido_scope_call.s -89010,80099F10,src/code/z_play.s -8CA70,8009D970,src/code/PreRender.s -8EB60,8009FA60,src/code/TwoHeadGfxArena.s -8ED70,8009FC70,src/code/TwoHeadArena.s -8EF30,8009FE30,src/code/audio_stop_all_sfx.s -8EF80,8009FE80,src/code/audio_thread_manager.s -8F390,800A0290,src/code/title_setup.s -8F400,800A0300,src/code/game.s -8FB80,800A0A80,src/code/gamealloc.s -8FCC0,800A0BC0,src/code/graph.s -90660,800A1560,src/code/gfxalloc.s -906C0,800A15C0,src/code/listalloc.s -90810,800A1710,src/code/main.s -90B70,800A1A70,src/code/padmgr.s -91680,800A2580,src/code/sched.s -92300,800A3200,src/code/speed_meter.s -92D40,800A3C40,src/code/sys_cfb.s -92E60,800A3D60,src/code/sys_math.s -93100,800A4000,src/code/sys_math3d.s -98ED0,800A9DD0,src/code/sys_math_atan.s -99100,800AA000,src/code/sys_matrix.s -9B500,800AC400,src/code/sys_ucode.s -9B550,800AC450,src/code/sys_rumble.s -9B8B0,800AC7B0,src/code/code_800D31A0.s -9B8E0,800AC7E0,src/code/irqmgr.s -9BF00,800ACE00,src/code/fault.s -9E750,800AF650,src/code/fault_drawer.s -9F1D0,800B00D0,src/code/kanread.s -9FCC0,800B0BC0,src/audio/lib/synthesis.s -A2E20,800B3D20,src/audio/lib/heap.s -A61F0,800B70F0,src/audio/lib/load.s -A9FE0,800BAEE0,src/audio/lib/thread.s -AB840,800BC740,src/audio/lib/dcache.s -AB8C0,800BC7C0,src/audio/lib/aisetnextbuf.s -AB940,800BC840,src/audio/lib/playback.s -AD8C0,800BE7C0,src/audio/lib/effects.s -AE340,800BF240,src/audio/lib/seqplayer.s -B1960,800C2860,src/audio/general.s -B7AF0,800C89F0,src/audio/sfx.s -B9950,800CA850,src/audio/sequence.s -BB570,800CC470,src/code/gfxprint.s -BC2E0,800CD1E0,src/code/rcp_utils.s -BC340,800CD240,src/code/loadfragment2.s -BC3A0,800CD2A0,src/code/relocation.s -BC5E0,800CD4E0,src/code/load.s -BC6B0,800CD5B0,src/code/code_800FC620.s -BC9F0,800CD8F0,src/code/padutils.s -BCBE0,800CDAE0,src/code/padsetup.s -BCD20,800CDC20,src/code/code_800FCE80.s -BD230,800CE130,src/code/fp.s -BD390,800CE290,src/code/system_malloc.s -BD560,800CE460,src/code/code_800FD970.s -BD720,800CE620,src/code/__osMalloc.s -BE4D0,800CF3D0,src/libultra/libc/sprintf.s -BE5A0,800CF4A0,src/code/printutils.s -BE600,800CF500,src/code/sleep.s -BE7A0,800CF6A0,src/code/jpegutils.s -BECB0,800CFBB0,src/code/jpegdecoder.s -BF2A0,800D01A0,src/libultra/mgu/scale.s -BF350,800D0250,src/libultra/gu/sinf.s -BF510,800D0410,src/libultra/gu/sins.s -BF580,800D0480,src/libultra/io/sptask.s -BF840,800D0740,src/libultra/io/motor.s -BFC10,800D0B10,src/libultra/io/siacs.s -BFCD0,800D0BD0,src/libultra/io/controller.s -BFFB0,800D0EB0,src/libultra/io/contreaddata.s -C0190,800D1090,src/libultra/gu/perspective.s -C0420,800D1320,src/libultra/io/sprawdma.s -C04B0,800D13B0,src/libultra/io/sirawdma.s -C0560,800D1460,src/libultra/io/sptaskyield.s -C0580,800D1480,src/libultra/mgu/mtxidentf.s -C05D0,800D14D0,src/libultra/gu/lookat.s -C08F0,800D17F0,src/libultra/os/stoptimer.s -C09E0,800D18E0,src/libultra/gu/sqrtf.s -C09F0,800D18F0,src/libultra/os/afterprenmi.s -C0A10,800D1910,src/libultra/io/contquery.s -C0AB0,800D19B0,src/libultra/gu/lookathil.s -C1330,800D2230,src/libultra/libc/xprintf.s -C2010,800D2F10,src/libultra/libc/string.s -C20B0,800D2FB0,src/libultra/io/sp.s -C20E0,800D2FE0,src/libultra/mgu/mtxident.s -C2130,800D3030,src/libultra/gu/position.s -C2340,800D3240,src/libultra/io/sptaskyielded.s -C23A0,800D32A0,src/libultra/gu/rotate.s -C2570,800D3470,src/libultra/io/aisetfreq.s -C26C0,800D35C0,src/libultra/os/getactivequeue.s -C26E0,800D35E0,src/libultra/mgu/normalize.s -C2740,800D3640,src/libultra/io/dpgetstat.s -C2750,800D3650,src/libultra/io/dpsetstat.s -C2760,800D3660,src/libultra/gu/ortho.s -C2920,800D3820,src/libultra/gu/cosf.s -C2A90,800D3990,src/libultra/gu/coss.s -C2AC0,800D39C0,src/libultra/io/visetevent.s -C2B20,800D3A20,src/libultra/gu/us2dex.s -C2CA0,800D3BA0,src/libultra/io/pfsselectbank.s -C2D20,800D3C20,src/libultra/io/contsetch.s -C2D80,800D3C80,src/libultra/io/aigetlen.s -C2DA0,800D3CA0,src/libultra/mgu/translate.s -C2E70,800D3D70,src/libultra/io/contramwrite.s -C30C0,800D3FC0,src/libultra/io/pfsgetstatus.s -C32F0,800D41F0,src/libultra/io/contpfs.s -C3E70,800D4D70,src/libultra/io/contramread.s -C40A0,800D4FA0,src/libultra/io/crc.s -C4210,800D5110,src/libultra/io/pfsisplug.s -C4500,800D5400,src/libultra/os/settimer.s -C4690,800D5590,src/libultra/libc/xldtob.s -C51A0,800D60A0,src/libultra/libc/ldiv.s -C5330,800D6230,src/libultra/libc/xlitob.s -C55D0,800D64D0,src/libultra/io/spgetstat.s -C55E0,800D64E0,src/libultra/io/spsetstat.s -C55F0,800D64F0,src/libultra/os/writebackdcacheall.s -C5620,800D6520,src/libultra/os/getcurrfaultedthread.s -C5640,800D6540,src/libultra/mgu/mtxf2l.s -C56B0,800D65B0,src/libultra/libc/llcvt.s -C58C0,800D67C0,src/libultra/io/vigetcurrframebuf.s -C5900,800D6800,src/libultra/io/spsetpc.s -C5930,800D6830,src/libultra/libc/sqrt.s -C5940,800D6840,src/libultra/libc/absf.s -C5950,800D6850,src/code/fmodf.s -C59A0,800D68A0,src/code/__osMemset.s -C59D0,800D68D0,src/code/__osMemmove.s -C5A60,800D6960,src/code/z_message_PAL.s -CE820,800DF720,src/code/z_game_over.s -CED60,800DFC60,src/code/z_construct.s -D02A0,800E11A0,data/rsp.text.s +0,80010F00,src/code/z_en_a_keep +AA0,800119A0,src/code/z_en_item00 +2EA0,80013DA0,src/code/z_eff_blure +62D0,800171D0,src/code/z_eff_shield_particle +7930,80018830,src/code/z_eff_spark +8FE0,80019EE0,src/code/z_eff_ss_dead +9790,8001A690,src/code/z_effect +9F10,8001AE10,src/code/z_effect_soft_sprite +A9B0,8001B8B0,src/code/z_effect_soft_sprite_old_init +D4D0,8001E3D0,src/code/flg_set +D8F0,8001E7F0,src/code/z_DLF +DB40,8001EA40,src/code/z_actor +1A0C0,8002AFC0,src/code/z_actor_dlftbls +1A210,8002B110,src/code/z_bgcheck +23DF0,80034CF0,src/code/code_800430A0 +24110,80035010,src/code/code_80043480 +244A0,800353A0,src/code/z_camera +38AD0,800499D0,src/code/z_collision_btltbls +38B30,80049A30,src/code/z_collision_check +407B0,800516B0,src/code/z_common_data +40830,80051730,src/code/z_debug +40B40,80051A40,src/code/z_debug_display +41000,80051F00,src/code/z_demo +45CE0,80056BE0,src/code/code_80069420 +45D70,80056C70,src/code/z_draw +47C70,80058B70,src/code/z_sfx_source +47E30,80058D30,src/code/z_elf_message +48510,80059410,src/code/z_face_reaction +48560,80059460,src/code/code_8006C3A0 +486E0,800595E0,src/code/z_fcurve_data +48920,80059820,src/code/z_fcurve_data_skelanime +49130,8005A030,src/code/z_horse +49E10,8005AD10,src/code/z_jpeg +4A5D0,8005B4D0,src/code/z_kaleido_setup +4A9A0,8005B8A0,src/code/z_kanfont +4AB70,8005BA70,src/code/z_kankyo +52380,80063280,src/code/z_lib +53520,80064420,src/code/z_lifemeter +548C0,800657C0,src/code/z_lights +55960,80066860,src/code/z_malloc +55B40,80066A40,src/code/z_map_mark +56140,80067040,src/code/z_prenmi_buff +56200,80067100,src/code/z_nulltask +56280,80067180,src/code/z_olib +56970,80067870,src/code/z_onepointdemo +5A910,8006B810,src/code/z_map_exp +5C4B0,8006D3B0,src/code/z_parameter +67BA0,80078AA0,src/code/z_path +67D70,80078C70,src/code/z_frame_advance +67E20,80078D20,src/code/z_player_lib +6B890,8007C790,src/code/z_prenmi +6BA30,8007C930,src/code/z_quake +6C8A0,8007D7A0,src/code/z_rcp +6E160,8007F060,src/code/z_room +6F950,80080850,src/code/z_sample +6FD50,80080C50,src/code/code_80097A00 +6FF10,80080E10,src/code/z_scene +713C0,800822C0,src/code/z_scene_table +77BA0,80088AA0,src/code/z_skelanime +7C590,8008D490,src/code/z_skin +7D130,8008E030,src/code/z_skin_awb +7DA40,8008E940,src/code/z_skin_matrix +7EDE0,8008FCE0,src/code/z_sram +80220,80091120,src/code/z_ss_sram +803F0,800912F0,src/code/z_rumble +80670,80091570,src/code/z_view +81D70,80092C70,src/code/z_vimode +828E0,800937E0,src/code/z_viscvg +82A80,80093980,src/code/z_vismono +832A0,800941A0,src/code/z_viszbuf +83530,80094430,src/code/z_vr_box +85E00,80096D00,src/code/z_vr_box_draw +864E0,800973E0,src/code/z_player_call +86650,80097550,src/code/z_fbdemo +87070,80097F70,src/code/z_fbdemo_triforce +87630,80098530,src/code/z_fbdemo_wipe1 +87AA0,800989A0,src/code/z_fbdemo_circle +88160,80099060,src/code/z_fbdemo_fade +884C0,800993C0,src/code/shrink_window +88630,80099530,src/code/code_800BB0A0 +88B00,80099A00,src/code/z_kaleido_manager +88D30,80099C30,src/code/z_kaleido_scope_call +89010,80099F10,src/code/z_play +8CA70,8009D970,src/code/PreRender +8EB60,8009FA60,src/code/TwoHeadGfxArena +8ED70,8009FC70,src/code/TwoHeadArena +8EF30,8009FE30,src/code/audio_stop_all_sfx +8EF80,8009FE80,src/code/audio_thread_manager +8F390,800A0290,src/code/title_setup +8F400,800A0300,src/code/game +8FB80,800A0A80,src/code/gamealloc +8FCC0,800A0BC0,src/code/graph +90660,800A1560,src/code/gfxalloc +906C0,800A15C0,src/code/listalloc +90810,800A1710,src/code/main +90B70,800A1A70,src/code/padmgr +91680,800A2580,src/code/sched +92300,800A3200,src/code/speed_meter +92D40,800A3C40,src/code/sys_cfb +92E60,800A3D60,src/code/sys_math +93100,800A4000,src/code/sys_math3d +98ED0,800A9DD0,src/code/sys_math_atan +99100,800AA000,src/code/sys_matrix +9B500,800AC400,src/code/sys_ucode +9B550,800AC450,src/code/sys_rumble +9B8B0,800AC7B0,src/code/code_800D31A0 +9B8E0,800AC7E0,src/code/irqmgr +9BF00,800ACE00,src/code/fault +9E750,800AF650,src/code/fault_drawer +9F1D0,800B00D0,src/code/kanread +9FCC0,800B0BC0,src/audio/lib/synthesis +A2E20,800B3D20,src/audio/lib/heap +A61F0,800B70F0,src/audio/lib/load +A9FE0,800BAEE0,src/audio/lib/thread +AB840,800BC740,src/audio/lib/dcache +AB8C0,800BC7C0,src/audio/lib/aisetnextbuf +AB940,800BC840,src/audio/lib/playback +AD8C0,800BE7C0,src/audio/lib/effects +AE340,800BF240,src/audio/lib/seqplayer +B1960,800C2860,src/audio/general +B7AF0,800C89F0,src/audio/sfx +B9950,800CA850,src/audio/sequence +BB570,800CC470,src/code/gfxprint +BC2E0,800CD1E0,src/code/rcp_utils +BC340,800CD240,src/code/loadfragment2 +BC3A0,800CD2A0,src/code/relocation +BC5E0,800CD4E0,src/code/load +BC6B0,800CD5B0,src/code/code_800FC620 +BC9F0,800CD8F0,src/code/padutils +BCBE0,800CDAE0,src/code/padsetup +BCD20,800CDC20,src/code/code_800FCE80 +BD230,800CE130,src/code/fp +BD390,800CE290,src/code/system_malloc +BD560,800CE460,src/code/code_800FD970 +BD720,800CE620,src/code/__osMalloc +BE4D0,800CF3D0,src/libultra/libc/sprintf +BE5A0,800CF4A0,src/code/printutils +BE600,800CF500,src/code/sleep +BE7A0,800CF6A0,src/code/jpegutils +BECB0,800CFBB0,src/code/jpegdecoder +BF2A0,800D01A0,src/libultra/mgu/scale +BF350,800D0250,src/libultra/gu/sinf +BF510,800D0410,src/libultra/gu/sins +BF580,800D0480,src/libultra/io/sptask +BF840,800D0740,src/libultra/io/motor +BFC10,800D0B10,src/libultra/io/siacs +BFCD0,800D0BD0,src/libultra/io/controller +BFFB0,800D0EB0,src/libultra/io/contreaddata +C0190,800D1090,src/libultra/gu/perspective +C0420,800D1320,src/libultra/io/sprawdma +C04B0,800D13B0,src/libultra/io/sirawdma +C0560,800D1460,src/libultra/io/sptaskyield +C0580,800D1480,src/libultra/mgu/mtxidentf +C05D0,800D14D0,src/libultra/gu/lookat +C08F0,800D17F0,src/libultra/os/stoptimer +C09E0,800D18E0,src/libultra/gu/sqrtf +C09F0,800D18F0,src/libultra/os/afterprenmi +C0A10,800D1910,src/libultra/io/contquery +C0AB0,800D19B0,src/libultra/gu/lookathil +C1330,800D2230,src/libultra/libc/xprintf +C2010,800D2F10,src/libultra/libc/string +C20B0,800D2FB0,src/libultra/io/sp +C20E0,800D2FE0,src/libultra/mgu/mtxident +C2130,800D3030,src/libultra/gu/position +C2340,800D3240,src/libultra/io/sptaskyielded +C23A0,800D32A0,src/libultra/gu/rotate +C2570,800D3470,src/libultra/io/aisetfreq +C26C0,800D35C0,src/libultra/os/getactivequeue +C26E0,800D35E0,src/libultra/mgu/normalize +C2740,800D3640,src/libultra/io/dpgetstat +C2750,800D3650,src/libultra/io/dpsetstat +C2760,800D3660,src/libultra/gu/ortho +C2920,800D3820,src/libultra/gu/cosf +C2A90,800D3990,src/libultra/gu/coss +C2AC0,800D39C0,src/libultra/io/visetevent +C2B20,800D3A20,src/libultra/gu/us2dex +C2CA0,800D3BA0,src/libultra/io/pfsselectbank +C2D20,800D3C20,src/libultra/io/contsetch +C2D80,800D3C80,src/libultra/io/aigetlen +C2DA0,800D3CA0,src/libultra/mgu/translate +C2E70,800D3D70,src/libultra/io/contramwrite +C30C0,800D3FC0,src/libultra/io/pfsgetstatus +C32F0,800D41F0,src/libultra/io/contpfs +C3E70,800D4D70,src/libultra/io/contramread +C40A0,800D4FA0,src/libultra/io/crc +C4210,800D5110,src/libultra/io/pfsisplug +C4500,800D5400,src/libultra/os/settimer +C4690,800D5590,src/libultra/libc/xldtob +C51A0,800D60A0,src/libultra/libc/ldiv +C5330,800D6230,src/libultra/libc/xlitob +C55D0,800D64D0,src/libultra/io/spgetstat +C55E0,800D64E0,src/libultra/io/spsetstat +C55F0,800D64F0,src/libultra/os/writebackdcacheall +C5620,800D6520,src/libultra/os/getcurrfaultedthread +C5640,800D6540,src/libultra/mgu/mtxf2l +C56B0,800D65B0,src/libultra/libc/llcvt +C58C0,800D67C0,src/libultra/io/vigetcurrframebuf +C5900,800D6800,src/libultra/io/spsetpc +C5930,800D6830,src/libultra/libc/sqrt +C5940,800D6840,src/libultra/libc/absf +C5950,800D6850,src/code/fmodf +C59A0,800D68A0,src/code/__osMemset +C59D0,800D68D0,src/code/__osMemmove +C5A60,800D6960,src/code/z_message_PAL +CE820,800DF720,src/code/z_game_over +CED60,800DFC60,src/code/z_construct +D02A0,800E11A0,data/rsp.text offset,vram,.data -D3600,800E4500,src/code/z_en_a_keep.s -D36A0,800E45A0,src/code/z_en_item00.s -D3940,800E4840,src/code/z_eff_blure.s -D39F0,800E48F0,src/code/z_eff_shield_particle.s -D3A40,800E4940,src/code/z_effect.s -D3A90,800E4990,src/code/z_effect_soft_sprite.s -D3AA0,800E49A0,src/code/z_effect_soft_sprite_old_init.s -D3B90,800E4A90,src/code/z_effect_soft_sprite_dlftbls.s -D3FA0,800E4EA0,src/code/flg_set.s -D4160,800E5060,src/code/z_actor.s -D4480,800E5380,src/code/z_actor_dlftbls.s -D7F70,800E8E70,src/code/z_bgcheck.s -D80C0,800E8FC0,src/code/z_camera.s -DB610,800EC510,src/code/z_collision_btltbls.s -DB8F0,800EC7F0,src/code/z_collision_check.s -DBBA0,800ECAA0,src/code/z_debug.s -DBBD0,800ECAD0,src/code/z_debug_display.s -DBC20,800ECB20,src/code/z_demo.s -DBD80,800ECC80,src/code/z_draw.s -DCE00,800EDD00,src/code/z_elf_message.s -DCE50,800EDD50,src/code/z_face_reaction.s -DD290,800EE190,src/code/z_game_dlftbls.s -DD3B0,800EE2B0,src/code/z_horse.s -DD4C0,800EE3C0,src/code/z_jpeg.s -DD500,800EE400,src/code/z_kaleido_setup.s -DD550,800EE450,src/code/z_kankyo.s -DD940,800EE840,src/code/z_lib.s -DD970,800EE870,src/code/z_lifemeter.s -DDA90,800EE990,src/code/z_lights.s -DDAA0,800EE9A0,src/code/z_map_mark.s -DDB60,800EEA60,src/code/z_onepointdemo.s -E1480,800F2380,src/code/z_map_exp.s -E14A0,800F23A0,src/code/z_map_data.s -E32A0,800F41A0,src/code/z_parameter.s -E35A0,800F44A0,src/code/z_player_lib.s -E3C80,800F4B80,src/code/z_quake.s -E3CB0,800F4BB0,src/code/z_rcp.s -E4AD0,800F59D0,src/code/z_room.s -E4B50,800F5A50,src/code/code_80097A00.s -E4ED0,800F5DD0,src/code/z_scene.s -E4F50,800F5E50,src/code/object_table.s -E5BF0,800F6AF0,src/code/z_scene_table.s -E7E00,800F8D00,src/code/z_skelanime.s -E7E20,800F8D20,src/code/z_skin_matrix.s -E7E60,800F8D60,src/code/z_sram.s -E8010,800F8F10,src/code/z_ss_sram.s -E80C0,800F8FC0,data/unk_8012ABC0.data.s -E80F0,800F8FF0,src/code/z_view.s -E8100,800F9000,src/code/z_viscvg.s -E8190,800F9090,src/code/z_vr_box.s -E8490,800F9390,src/code/z_player_call.s -E84B0,800F93B0,src/code/z_fbdemo.s -E8530,800F9430,src/code/z_fbdemo_triforce.s -E8600,800F9500,src/code/z_fbdemo_wipe1.s -E90A0,800F9FA0,src/code/z_fbdemo_circle.s -EA3A0,800FB2A0,src/code/z_fbdemo_fade.s -EA3D0,800FB2D0,src/code/shrink_window.s -EA3E0,800FB2E0,src/code/z_kaleido_manager.s -EA430,800FB330,src/code/z_play.s -EA440,800FB340,src/code/audio_stop_all_sfx.s -EA450,800FB350,src/code/graph.s -EA460,800FB360,src/code/main.s -EA470,800FB370,src/code/padmgr.s -EA480,800FB380,src/code/speed_meter.s -EA4B0,800FB3B0,src/code/sys_math.s -EA4F0,800FB3F0,src/code/sys_math_atan.s -EAD00,800FBC00,src/code/sys_matrix.s -EAD80,800FBC80,src/code/sys_ucode.s -EAD90,800FBC90,src/code/sys_rumble.s -EADA0,800FBCA0,src/code/irqmgr.s -EADC0,800FBCC0,src/code/fault.s -EAE20,800FBD20,src/code/fault_drawer.s -EAE60,800FBD60,src/audio/lib/data.s -ED270,800FE170,src/audio/lib/synthesis.s -ED2A0,800FE1A0,src/audio/lib/load.s -ED2B0,800FE1B0,src/audio/lib/thread.s -ED2D0,800FE1D0,src/audio/lib/aisetnextbuf.s -ED2E0,800FE1E0,src/audio/lib/effects.s -ED2F0,800FE1F0,src/audio/lib/seqplayer.s -ED340,800FE240,src/audio/general.s -EEA60,800FF960,src/audio/sfx_params.s -EFE30,80100D30,src/audio/data.s -EFEA0,80100DA0,src/audio/session_config.s -F0640,80101540,src/code/logseverity.s -F0650,80101550,src/code/gfxprint.s -F0F00,80101E00,src/code/code_800FC620.s -F0F20,80101E20,src/code/fp.s -F0F30,80101E30,src/code/code_800FD970.s -F0F40,80101E40,src/code/__osMalloc.s -F0F50,80101E50,src/libultra/gu/sins.s -F1750,80102650,src/libultra/io/siacs.s -F1760,80102660,src/libultra/io/controller.s -F1770,80102670,src/libultra/libc/xprintf.s -F17C0,801026C0,src/libultra/gu/position.s -F17D0,801026D0,src/libultra/gu/rotate.s -F17E0,801026E0,src/libultra/io/vimodefpallan1.s -F1830,80102730,src/libultra/io/contpfs.s -F1840,80102740,src/libultra/io/contramread.s -F1850,80102750,src/libultra/libc/xlitob.s +D3600,800E4500,src/code/z_en_a_keep +D36A0,800E45A0,src/code/z_en_item00 +D3940,800E4840,src/code/z_eff_blure +D39F0,800E48F0,src/code/z_eff_shield_particle +D3A40,800E4940,src/code/z_effect +D3A90,800E4990,src/code/z_effect_soft_sprite +D3AA0,800E49A0,src/code/z_effect_soft_sprite_old_init +D3B90,800E4A90,src/code/z_effect_soft_sprite_dlftbls +D3FA0,800E4EA0,src/code/flg_set +D4160,800E5060,src/code/z_actor +D4480,800E5380,src/code/z_actor_dlftbls +D7F70,800E8E70,src/code/z_bgcheck +D80C0,800E8FC0,src/code/z_camera +DB610,800EC510,src/code/z_collision_btltbls +DB8F0,800EC7F0,src/code/z_collision_check +DBBA0,800ECAA0,src/code/z_debug +DBBD0,800ECAD0,src/code/z_debug_display +DBC20,800ECB20,src/code/z_demo +DBD80,800ECC80,src/code/z_draw +DCE00,800EDD00,src/code/z_elf_message +DCE50,800EDD50,src/code/z_face_reaction +DD290,800EE190,src/code/z_game_dlftbls +DD3B0,800EE2B0,src/code/z_horse +DD4C0,800EE3C0,src/code/z_jpeg +DD500,800EE400,src/code/z_kaleido_setup +DD550,800EE450,src/code/z_kankyo +DD940,800EE840,src/code/z_lib +DD970,800EE870,src/code/z_lifemeter +DDA90,800EE990,src/code/z_lights +DDAA0,800EE9A0,src/code/z_map_mark +DDB60,800EEA60,src/code/z_onepointdemo +E1480,800F2380,src/code/z_map_exp +E14A0,800F23A0,src/code/z_map_data +E32A0,800F41A0,src/code/z_parameter +E35A0,800F44A0,src/code/z_player_lib +E3C80,800F4B80,src/code/z_quake +E3CB0,800F4BB0,src/code/z_rcp +E4AD0,800F59D0,src/code/z_room +E4B50,800F5A50,src/code/code_80097A00 +E4ED0,800F5DD0,src/code/z_scene +E4F50,800F5E50,src/code/object_table +E5BF0,800F6AF0,src/code/z_scene_table +E7E00,800F8D00,src/code/z_skelanime +E7E20,800F8D20,src/code/z_skin_matrix +E7E60,800F8D60,src/code/z_sram +E8010,800F8F10,src/code/z_ss_sram +E80C0,800F8FC0,data/unk_8012ABC0.data +E80F0,800F8FF0,src/code/z_view +E8100,800F9000,src/code/z_viscvg +E8190,800F9090,src/code/z_vr_box +E8490,800F9390,src/code/z_player_call +E84B0,800F93B0,src/code/z_fbdemo +E8530,800F9430,src/code/z_fbdemo_triforce +E8600,800F9500,src/code/z_fbdemo_wipe1 +E90A0,800F9FA0,src/code/z_fbdemo_circle +EA3A0,800FB2A0,src/code/z_fbdemo_fade +EA3D0,800FB2D0,src/code/shrink_window +EA3E0,800FB2E0,src/code/z_kaleido_manager +EA430,800FB330,src/code/z_play +EA440,800FB340,src/code/audio_stop_all_sfx +EA450,800FB350,src/code/graph +EA460,800FB360,src/code/main +EA470,800FB370,src/code/padmgr +EA480,800FB380,src/code/speed_meter +EA4B0,800FB3B0,src/code/sys_math +EA4F0,800FB3F0,src/code/sys_math_atan +EAD00,800FBC00,src/code/sys_matrix +EAD80,800FBC80,src/code/sys_ucode +EAD90,800FBC90,src/code/sys_rumble +EADA0,800FBCA0,src/code/irqmgr +EADC0,800FBCC0,src/code/fault +EAE20,800FBD20,src/code/fault_drawer +EAE60,800FBD60,src/audio/lib/data +ED270,800FE170,src/audio/lib/synthesis +ED2A0,800FE1A0,src/audio/lib/load +ED2B0,800FE1B0,src/audio/lib/thread +ED2D0,800FE1D0,src/audio/lib/aisetnextbuf +ED2E0,800FE1E0,src/audio/lib/effects +ED2F0,800FE1F0,src/audio/lib/seqplayer +ED340,800FE240,src/audio/general +EEA60,800FF960,src/audio/sfx_params +EFE30,80100D30,src/audio/data +EFEA0,80100DA0,src/audio/session_config +F0640,80101540,src/code/logseverity +F0650,80101550,src/code/gfxprint +F0F00,80101E00,src/code/code_800FC620 +F0F20,80101E20,src/code/fp +F0F30,80101E30,src/code/code_800FD970 +F0F40,80101E40,src/code/__osMalloc +F0F50,80101E50,src/libultra/gu/sins +F1750,80102650,src/libultra/io/siacs +F1760,80102660,src/libultra/io/controller +F1770,80102670,src/libultra/libc/xprintf +F17C0,801026C0,src/libultra/gu/position +F17D0,801026D0,src/libultra/gu/rotate +F17E0,801026E0,src/libultra/io/vimodefpallan1 +F1830,80102730,src/libultra/io/contpfs +F1840,80102740,src/libultra/io/contramread +F1850,80102750,src/libultra/libc/xlitob offset,vram,.rodata -F1880,80102780,src/code/z_en_a_keep.s -F18D0,801027D0,src/code/z_en_item00.s -F1B40,80102A40,src/code/z_eff_blure.s -F1B70,80102A70,src/code/z_eff_shield_particle.s -F1B80,80102A80,src/code/z_eff_spark.s -F1B90,80102A90,src/code/z_eff_ss_dead.s -F1BA0,80102AA0,src/code/z_effect_soft_sprite_old_init.s -F1BC0,80102AC0,src/code/flg_set.s -F1F50,80102E50,src/code/z_actor.s -F2500,80103400,src/code/z_actor_dlftbls.s -F2550,80103450,src/code/z_bgcheck.s -F25F0,801034F0,src/code/code_80043480.s -F2600,80103500,src/code/z_camera.s -F2D80,80103C80,src/code/z_collision_check.s -F2DD0,80103CD0,src/code/z_debug.s -F2DE0,80103CE0,src/code/z_demo.s -F32C0,801041C0,src/code/z_draw.s -F32D0,801041D0,src/code/z_elf_message.s -F33F0,801042F0,src/code/z_fcurve_data.s -F3400,80104300,src/code/z_fcurve_data_skelanime.s -F3410,80104310,src/code/z_horse.s -F3420,80104320,src/code/z_jpeg.s -F34B0,801043B0,src/code/z_kankyo.s -F3560,80104460,src/code/z_lib.s -F3570,80104470,src/code/z_lifemeter.s -F3590,80104490,src/code/z_lights.s -F35A0,801044A0,src/code/z_map_mark.s -F3600,80104500,src/code/z_olib.s -F3620,80104520,src/code/z_onepointdemo.s -F3EE0,80104DE0,src/code/z_map_exp.s -F4200,80105100,src/code/z_parameter.s -F4410,80105310,src/code/z_path.s -F4420,80105320,src/code/z_player_lib.s -F4480,80105380,src/code/z_quake.s -F4510,80105410,src/code/z_room.s -F4550,80105450,src/code/z_sample.s -F4560,80105460,src/code/z_scene_table.s -F45A0,801054A0,src/code/z_skelanime.s -F45C0,801054C0,src/code/z_skin.s -F45D0,801054D0,src/code/z_skin_matrix.s -F45E0,801054E0,src/code/z_sram.s -F4650,80105550,src/code/z_rumble.s -F4660,80105560,src/code/z_view.s -F4670,80105570,src/code/z_vr_box.s -F4760,80105660,src/code/z_fbdemo_triforce.s -F4770,80105670,src/code/z_fbdemo_wipe1.s -F4780,80105680,src/code/z_fbdemo_circle.s -F4790,80105690,src/code/code_800BB0A0.s -F47A0,801056A0,src/code/z_kaleido_manager.s -F47C0,801056C0,src/code/z_play.s -F4880,80105780,src/code/game.s -F48A0,801057A0,src/code/graph.s -F48F0,801057F0,src/code/main.s -F4920,80105820,src/code/padmgr.s -F4930,80105830,src/code/sys_cfb.s -F4940,80105840,src/code/sys_math.s -F4950,80105850,src/code/sys_math3d.s -F49E0,801058E0,src/code/sys_math_atan.s -F49F0,801058F0,src/code/sys_matrix.s -F4A20,80105920,src/code/irqmgr.s -F4A40,80105940,src/code/fault.s -F5450,80106350,src/code/fault_drawer.s -F5880,80106780,src/audio/lib/synthesis.s -F58A0,801067A0,src/audio/lib/heap.s -F58D0,801067D0,src/audio/lib/load.s -F5940,80106840,src/audio/lib/thread.s -F5A70,80106970,src/audio/lib/playback.s -F5AA0,801069A0,src/audio/lib/effects.s -F5AD0,801069D0,src/audio/lib/seqplayer.s -F6110,80107010,src/audio/general.s -F62A0,801071A0,src/audio/sfx.s -F62C0,801071C0,src/audio/sequence.s -F6340,80107240,src/audio/session_config.s -F6350,80107250,src/code/gfxprint.s -F6370,80107270,src/code/code_800FCE80.s -F63C0,801072C0,src/code/__osMalloc.s -F6680,80107580,src/libultra/gu/sinf.s -F66D0,801075D0,src/libultra/gu/perspective.s -F66E0,801075E0,src/libultra/gu/lookathil.s -F66F0,801075F0,src/libultra/libc/xprintf.s -F67F0,801076F0,src/libultra/gu/cosf.s -F6840,80107740,src/libultra/gu/libm_vals.s -F6850,80107750,src/libultra/libc/xldtob.s -F68B0,801077B0,src/libultra/libc/llcvt.s +F1880,80102780,src/code/z_en_a_keep +F18D0,801027D0,src/code/z_en_item00 +F1B40,80102A40,src/code/z_eff_blure +F1B70,80102A70,src/code/z_eff_shield_particle +F1B80,80102A80,src/code/z_eff_spark +F1B90,80102A90,src/code/z_eff_ss_dead +F1BA0,80102AA0,src/code/z_effect_soft_sprite_old_init +F1BC0,80102AC0,src/code/flg_set +F1F50,80102E50,src/code/z_actor +F2500,80103400,src/code/z_actor_dlftbls +F2550,80103450,src/code/z_bgcheck +F25F0,801034F0,src/code/code_80043480 +F2600,80103500,src/code/z_camera +F2D80,80103C80,src/code/z_collision_check +F2DD0,80103CD0,src/code/z_debug +F2DE0,80103CE0,src/code/z_demo +F32C0,801041C0,src/code/z_draw +F32D0,801041D0,src/code/z_elf_message +F33F0,801042F0,src/code/z_fcurve_data +F3400,80104300,src/code/z_fcurve_data_skelanime +F3410,80104310,src/code/z_horse +F3420,80104320,src/code/z_jpeg +F34B0,801043B0,src/code/z_kankyo +F3560,80104460,src/code/z_lib +F3570,80104470,src/code/z_lifemeter +F3590,80104490,src/code/z_lights +F35A0,801044A0,src/code/z_map_mark +F3600,80104500,src/code/z_olib +F3620,80104520,src/code/z_onepointdemo +F3EE0,80104DE0,src/code/z_map_exp +F4200,80105100,src/code/z_parameter +F4410,80105310,src/code/z_path +F4420,80105320,src/code/z_player_lib +F4480,80105380,src/code/z_quake +F4510,80105410,src/code/z_room +F4550,80105450,src/code/z_sample +F4560,80105460,src/code/z_scene_table +F45A0,801054A0,src/code/z_skelanime +F45C0,801054C0,src/code/z_skin +F45D0,801054D0,src/code/z_skin_matrix +F45E0,801054E0,src/code/z_sram +F4650,80105550,src/code/z_rumble +F4660,80105560,src/code/z_view +F4670,80105570,src/code/z_vr_box +F4760,80105660,src/code/z_fbdemo_triforce +F4770,80105670,src/code/z_fbdemo_wipe1 +F4780,80105680,src/code/z_fbdemo_circle +F4790,80105690,src/code/code_800BB0A0 +F47A0,801056A0,src/code/z_kaleido_manager +F47C0,801056C0,src/code/z_play +F4880,80105780,src/code/game +F48A0,801057A0,src/code/graph +F48F0,801057F0,src/code/main +F4920,80105820,src/code/padmgr +F4930,80105830,src/code/sys_cfb +F4940,80105840,src/code/sys_math +F4950,80105850,src/code/sys_math3d +F49E0,801058E0,src/code/sys_math_atan +F49F0,801058F0,src/code/sys_matrix +F4A20,80105920,src/code/irqmgr +F4A40,80105940,src/code/fault +F5450,80106350,src/code/fault_drawer +F5880,80106780,src/audio/lib/synthesis +F58A0,801067A0,src/audio/lib/heap +F58D0,801067D0,src/audio/lib/load +F5940,80106840,src/audio/lib/thread +F5A70,80106970,src/audio/lib/playback +F5AA0,801069A0,src/audio/lib/effects +F5AD0,801069D0,src/audio/lib/seqplayer +F6110,80107010,src/audio/general +F62A0,801071A0,src/audio/sfx +F62C0,801071C0,src/audio/sequence +F6340,80107240,src/audio/session_config +F6350,80107250,src/code/gfxprint +F6370,80107270,src/code/code_800FCE80 +F63C0,801072C0,src/code/__osMalloc +F6680,80107580,src/libultra/gu/sinf +F66D0,801075D0,src/libultra/gu/perspective +F66E0,801075E0,src/libultra/gu/lookathil +F66F0,801075F0,src/libultra/libc/xprintf +F67F0,801076F0,src/libultra/gu/cosf +F6840,80107740,src/libultra/gu/libm_vals +F6850,80107750,src/libultra/libc/xldtob +F68B0,801077B0,src/libultra/libc/llcvt offset,vram,.data -F68C0,801077C0,src/code/z_message_PAL.s +F68C0,801077C0,src/code/z_message_PAL offset,vram,.rodata -FF350,80110250,src/code/z_message_PAL.s -FF510,80110410,src/code/z_game_over.s -FF570,80110470,data/audio_tables.rodata.s -100110,80111010,data/rsp.rodata.s +FF350,80110250,src/code/z_message_PAL +FF510,80110410,src/code/z_game_over +FF570,80110470,data/audio_tables.rodata +100110,80111010,data/rsp.rodata offset,vram,.bss -102230,80113130,src/code/z_en_item00.s -102240,80113140,src/code/z_effect.s -106030,80116F30,src/code/flg_set.s -106040,80116F40,src/code/z_actor.s -1060C0,80116FC0,src/code/z_actor_dlftbls.s -1060D0,80116FD0,src/code/z_bgcheck.s -1061F0,801170F0,src/code/z_camera.s -1062D0,801171D0,src/code/z_collision_check.s -107A30,80118930,src/code/z_common_data.s -108E60,80119D60,src/code/z_debug.s -109080,80119F80,src/code/z_debug_display.s -109090,80119F90,src/code/z_demo.s -1090C0,80119FC0,src/code/z_kankyo.s -109190,8011A090,src/code/z_lifemeter.s -1091C0,8011A0C0,src/code/z_lights.s -109350,8011A250,src/code/z_malloc.s -109380,8011A280,src/code/z_map_mark.s -109390,8011A290,src/code/z_map_exp.s -1093A0,8011A2A0,src/code/z_parameter.s -1093C0,8011A2C0,src/code/z_player_lib.s -1093E0,8011A2E0,src/code/z_quake.s -109470,8011A370,src/code/z_skelanime.s -109480,8011A380,src/code/z_skin.s -10A390,8011B290,src/code/z_rumble.s -10A4A0,8011B3A0,src/code/z_vr_box_draw.s -10A4B0,8011B3B0,src/code/z_player_call.s -10A4C0,8011B3C0,src/code/z_kaleido_scope_call.s -10A4E0,8011B3E0,src/code/z_play.s -10A5F0,8011B4F0,src/code/game.s -10A6D0,8011B5D0,src/code/graph.s -10A740,8011B640,src/code/main.s -10E5D0,8011F4D0,src/code/padmgr.s -10E5E0,8011F4E0,src/code/sched.s -10E600,8011F500,src/code/speed_meter.s -10E670,8011F570,src/code/sys_cfb.s -10E680,8011F580,src/code/sys_math3d.s -10E8A0,8011F7A0,src/code/sys_matrix.s -10E8B0,8011F7B0,src/code/fault.s -10F730,80120630,src/code/fault_drawer.s -10F790,80120690,src/audio/lib/load.s -10F850,80120750,src/audio/general.s -10FA50,80120950,src/audio/sfx.s -112260,80123160,src/audio/sequence.s -113020,80123F20,src/audio/session_config.s -119530,8012A430,src/code/gfxprint.s -119540,8012A440,src/code/code_800FCE80.s -119550,8012A450,src/code/system_malloc.s -119580,8012A480,src/code/code_800FD970.s -119590,8012A490,src/code/__osMalloc.s -1195A0,8012A4A0,src/code/jpegdecoder.s -1195B0,8012A4B0,src/libultra/io/sptask.s -1195F0,8012A4F0,src/libultra/io/motor.s -1196F0,8012A5F0,src/libultra/io/siacs.s -119710,8012A610,src/libultra/io/controller.s -1197A0,8012A6A0,src/libultra/io/contpfs.s -1198A0,8012A7A0,src/libultra/io/pfsisplug.s -1198E0,8012A7E0,src/code/z_message_PAL.s +102230,80113130,src/code/z_en_item00 +102240,80113140,src/code/z_effect +106030,80116F30,src/code/flg_set +106040,80116F40,src/code/z_actor +1060C0,80116FC0,src/code/z_actor_dlftbls +1060D0,80116FD0,src/code/z_bgcheck +1061F0,801170F0,src/code/z_camera +1062D0,801171D0,src/code/z_collision_check +107A30,80118930,src/code/z_common_data +108E60,80119D60,src/code/z_debug +109080,80119F80,src/code/z_debug_display +109090,80119F90,src/code/z_demo +1090C0,80119FC0,src/code/z_kankyo +109190,8011A090,src/code/z_lifemeter +1091C0,8011A0C0,src/code/z_lights +109350,8011A250,src/code/z_malloc +109380,8011A280,src/code/z_map_mark +109390,8011A290,src/code/z_map_exp +1093A0,8011A2A0,src/code/z_parameter +1093C0,8011A2C0,src/code/z_player_lib +1093E0,8011A2E0,src/code/z_quake +109470,8011A370,src/code/z_skelanime +109480,8011A380,src/code/z_skin +10A390,8011B290,src/code/z_rumble +10A4A0,8011B3A0,src/code/z_vr_box_draw +10A4B0,8011B3B0,src/code/z_player_call +10A4C0,8011B3C0,src/code/z_kaleido_scope_call +10A4E0,8011B3E0,src/code/z_play +10A5F0,8011B4F0,src/code/game +10A6D0,8011B5D0,src/code/graph +10A740,8011B640,src/code/main +10E5D0,8011F4D0,src/code/padmgr +10E5E0,8011F4E0,src/code/sched +10E600,8011F500,src/code/speed_meter +10E670,8011F570,src/code/sys_cfb +10E680,8011F580,src/code/sys_math3d +10E8A0,8011F7A0,src/code/sys_matrix +10E8B0,8011F7B0,src/code/fault +10F730,80120630,src/code/fault_drawer +10F790,80120690,src/audio/lib/load +10F850,80120750,src/audio/general +10FA50,80120950,src/audio/sfx +112260,80123160,src/audio/sequence +113020,80123F20,src/audio/session_config +119530,8012A430,src/code/gfxprint +119540,8012A440,src/code/code_800FCE80 +119550,8012A450,src/code/system_malloc +119580,8012A480,src/code/code_800FD970 +119590,8012A490,src/code/__osMalloc +1195A0,8012A4A0,src/code/jpegdecoder +1195B0,8012A4B0,src/libultra/io/sptask +1195F0,8012A4F0,src/libultra/io/motor +1196F0,8012A5F0,src/libultra/io/siacs +119710,8012A610,src/libultra/io/controller +1197A0,8012A6A0,src/libultra/io/contpfs +1198A0,8012A7A0,src/libultra/io/pfsisplug +1198E0,8012A7E0,src/code/z_message_PAL 119900,8012A800,.end diff --git a/tools/disasm/gc-eu-mq/files_ovl_file_choose.csv b/tools/disasm/gc-eu-mq/files_ovl_file_choose.csv index 1a0310d1c2..aa498ef9a4 100644 --- a/tools/disasm/gc-eu-mq/files_ovl_file_choose.csv +++ b/tools/disasm/gc-eu-mq/files_ovl_file_choose.csv @@ -1,22 +1,22 @@ offset,vram,.text -0,80803630,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.s -3040,80806670,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.s -6F60,8080A590,src/overlays/gamestates/ovl_file_choose/z_file_choose.s +0,80803630,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase +3040,80806670,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL +6F60,8080A590,src/overlays/gamestates/ovl_file_choose/z_file_choose offset,vram,.data -D740,80810D70,src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.s -E010,80811640,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.s -E050,80811680,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.s -E2B0,808118E0,src/overlays/gamestates/ovl_file_choose/z_file_choose.s +D740,80810D70,src/overlays/gamestates/ovl_file_choose/z_file_nameset_data +E010,80811640,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase +E050,80811680,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL +E2B0,808118E0,src/overlays/gamestates/ovl_file_choose/z_file_choose offset,vram,.rodata -E5F0,80811C20,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.s -E600,80811C30,src/overlays/gamestates/ovl_file_choose/z_file_choose.s +E5F0,80811C20,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL +E600,80811C30,src/overlays/gamestates/ovl_file_choose/z_file_choose offset,vram,.ovl -E620,80811C50,src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc.s +E620,80811C50,src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc offset,vram,.bss -EC10,80812240,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.s -EC20,80812250,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.s +EC10,80812240,src/overlays/gamestates/ovl_file_choose/z_file_copy_erase +EC20,80812250,src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL EC30,80812260,.end diff --git a/tools/disasm/gc-eu-mq/files_ovl_kaleido_scope.csv b/tools/disasm/gc-eu-mq/files_ovl_kaleido_scope.csv index c03d916257..ca3a62dcad 100644 --- a/tools/disasm/gc-eu-mq/files_ovl_kaleido_scope.csv +++ b/tools/disasm/gc-eu-mq/files_ovl_kaleido_scope.csv @@ -1,34 +1,34 @@ offset,vram,.text -0,80812260,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.s -2400,80814660,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.s -43B0,80816610,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.s -5E30,80818090,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.s -7E20,8081A080,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.s -B100,8081D360,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.s -B300,8081D560,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.s -15350,808275B0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.s +0,80812260,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect +2400,80814660,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug +43B0,80816610,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment +5E30,80818090,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item +7E20,8081A080,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL +B100,8081D360,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt +B300,8081D560,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL +15350,808275B0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark offset,vram,.data -15A10,80827C70,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.s -15BC0,80827E20,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.s -15D90,80827FF0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.s -15DC0,80828020,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.s -15E30,80828090,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.s -16080,808282E0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.s -16090,808282F0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.s -16C10,80828E70,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.s -16C60,80828EC0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.s +15A10,80827C70,src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect +15BC0,80827E20,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug +15D90,80827FF0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment +15DC0,80828020,src/overlays/misc/ovl_kaleido_scope/z_kaleido_item +15E30,80828090,src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL +16080,808282E0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt +16090,808282F0,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL +16C10,80828E70,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark +16C60,80828EC0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data offset,vram,.rodata -1ADC0,8082D020,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.s -1AEA0,8082D100,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.s -1AEB0,8082D110,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.s -1B190,8082D3F0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.s -1B240,8082D4A0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.s +1ADC0,8082D020,src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug +1AEA0,8082D100,src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment +1AEB0,8082D110,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL +1B190,8082D3F0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark +1B240,8082D4A0,src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data offset,vram,.ovl -1B2C0,8082D560,src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc.s +1B2C0,8082D560,src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc offset,vram,.bss -1C9C0,8082EC20,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.s +1C9C0,8082EC20,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL 1CA30,8082EC90,.end diff --git a/tools/disasm/list_generated_files.py b/tools/disasm/list_generated_files.py deleted file mode 100755 index 2f160a961e..0000000000 --- a/tools/disasm/list_generated_files.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env python3 - -# SPDX-FileCopyrightText: © 2024 ZeldaRET -# SPDX-License-Identifier: CC0-1.0 - -import argparse -import csv -from pathlib import Path - -from file_addresses import parse_file_addresses, get_z_name_for_overlay - - -def main(): - parser = argparse.ArgumentParser( - description="List generated files for the Makefile." - ) - parser.add_argument( - "-o", "--output-dir", help="Output directory", type=Path, required=True - ) - parser.add_argument( - "--config-dir", help="Config directory", type=Path, required=True - ) - - args = parser.parse_args() - - if not args.config_dir.exists(): # disassembly is not set up for this version - return - - file_addresses = parse_file_addresses(args.config_dir / "file_addresses.csv") - - generated_files = set() - for dma_file in file_addresses: - file_splits_path = args.config_dir / f"files_{dma_file.name}.csv" - if file_splits_path.exists(): - with open(file_splits_path) as f: - reader = csv.reader(f) - for row in reader: - if ( - not row # blank line - or row[2].startswith(".") # section name or .end - or row[2].endswith( - "_reloc.s" - ) # TODO: disassemble overlay reloc sections? - ): - continue - generated_files.add(row[2]) - elif dma_file.overlay_dir is not None: - z_name = get_z_name_for_overlay(dma_file.name) - generated_files.add( - f"src/overlays/{dma_file.overlay_dir}/{dma_file.name}/{z_name}.s" - ) - else: - raise Exception( - f"DMA file {dma_file.name} is not an overlay but has no file splits" - ) - - for filename in sorted(generated_files): - print(args.output_dir / filename) - - -if __name__ == "__main__": - main()