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)
This commit is contained in:
Dragorn421
2024-02-13 02:20:25 +01:00
committed by GitHub
parent 0ac4448d99
commit 1ba2d6d0f9
10 changed files with 753 additions and 744 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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__":

55
tools/disasm/do_disasm.sh Executable file
View File

@@ -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!

View File

@@ -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
1 offset vram .text
2 0 80000460 src/boot/boot_main.s src/boot/boot_main
3 140 800005A0 src/boot/idle.s src/boot/idle
4 3D0 80000830 src/boot/viconfig.s src/boot/viconfig
5 520 80000980 src/boot/z_std_dma.s src/boot/z_std_dma
6 B60 80000FC0 src/boot/yaz0.s src/boot/yaz0
7 EA0 80001300 src/boot/z_locale.s src/boot/z_locale
8 F60 800013C0 src/boot/is_debug.s src/boot/is_debug
9 FC0 80001420 src/libultra/io/driverominit.s src/libultra/io/driverominit
10 11A0 80001600 src/boot/mio0.s src/boot/mio0
11 1250 800016B0 src/boot/stackcheck.s src/boot/stackcheck
12 14A0 80001900 src/boot/logutils.s src/boot/logutils
13 1500 80001960 src/libultra/io/piacs.s src/libultra/io/piacs
14 15C0 80001A20 src/libultra/os/sendmesg.s src/libultra/os/sendmesg
15 1710 80001B70 src/libultra/os/stopthread.s src/libultra/os/stopthread
16 17D0 80001C30 src/libultra/io/viextendvstart.s src/libultra/io/viextendvstart
17 17E0 80001C40 src/libultra/os/recvmesg.s src/libultra/os/recvmesg
18 1920 80001D80 src/libultra/os/initialize.s src/libultra/os/initialize
19 1C70 800020D0 src/libultra/libc/ll.s src/libultra/libc/ll
20 1F30 80002390 src/libultra/os/exceptasm.s src/libultra/os/exceptasm
21 2860 80002CC0 src/libultra/os/thread.s src/libultra/os/thread
22 28A0 80002D00 src/libultra/os/destroythread.s src/libultra/os/destroythread
23 29B0 80002E10 src/libultra/libc/bzero.s src/libultra/libc/bzero
24 2A50 80002EB0 src/libultra/os/parameters.s src/libultra/os/parameters
25 2AB0 80002F10 src/libultra/os/createthread.s src/libultra/os/createthread
26 2C00 80003060 src/libultra/os/setsr.s src/libultra/os/setsr
27 2C10 80003070 src/libultra/os/getsr.s src/libultra/os/getsr
28 2C20 80003080 src/libultra/os/writebackdcache.s src/libultra/os/writebackdcache
29 2CA0 80003100 src/libultra/io/vigetnextframebuf.s src/libultra/io/vigetnextframebuf
30 2CE0 80003140 src/libultra/io/pimgr.s src/libultra/io/pimgr
31 2E60 800032C0 src/libultra/io/devmgr.s src/libultra/io/devmgr
32 3270 800036D0 src/libultra/io/pirawdma.s src/libultra/io/pirawdma
33 3340 800037A0 src/libultra/os/virtualtophysical.s src/libultra/os/virtualtophysical
34 33C0 80003820 src/libultra/io/viblack.s src/libultra/io/viblack
35 3430 80003890 src/libultra/io/sirawread.s src/libultra/io/sirawread
36 3480 800038E0 src/libultra/os/getthreadid.s src/libultra/os/getthreadid
37 34A0 80003900 src/libultra/os/setintmask.s src/libultra/os/setintmask
38 3540 800039A0 src/libultra/io/visetmode.s src/libultra/io/visetmode
39 35A0 80003A00 src/libultra/os/probetlb.s src/libultra/os/probetlb
40 3660 80003AC0 src/libultra/os/getmemsize.s src/libultra/os/getmemsize
41 3780 80003BE0 src/libultra/os/seteventmesg.s src/libultra/os/seteventmesg
42 3840 80003CA0 src/libultra/os/unmaptlball.s src/libultra/os/unmaptlball
43 3890 80003CF0 src/libultra/io/epidma.s src/libultra/io/epidma
44 3930 80003D90 src/libultra/os/invalicache.s src/libultra/os/invalicache
45 39B0 80003E10 src/libultra/os/createmesgqueue.s src/libultra/os/createmesgqueue
46 39E0 80003E40 src/libultra/os/invaldcache.s src/libultra/os/invaldcache
47 3A90 80003EF0 src/libultra/io/si.s src/libultra/io/si
48 3AC0 80003F20 src/libultra/os/jammesg.s src/libultra/os/jammesg
49 3C10 80004070 src/libultra/os/setthreadpri.s src/libultra/os/setthreadpri
50 3CF0 80004150 src/libultra/os/getthreadpri.s src/libultra/os/getthreadpri
51 3D10 80004170 src/libultra/io/epirawread.s src/libultra/io/epirawread
52 3E70 800042D0 src/libultra/io/viswapbuf.s src/libultra/io/viswapbuf
53 3EC0 80004320 src/libultra/io/epirawdma.s src/libultra/io/epirawdma
54 40A0 80004500 src/libultra/libc/bcmp.s src/libultra/libc/bcmp
55 41C0 80004620 src/libultra/os/gettime.s src/libultra/os/gettime
56 4250 800046B0 src/libultra/os/timerintr.s src/libultra/os/timerintr
57 4680 80004AE0 src/libultra/os/getcount.s src/libultra/os/getcount
58 4690 80004AF0 src/libultra/os/setglobalintmask.s src/libultra/os/setglobalintmask
59 46E0 80004B40 src/libultra/os/setcompare.s src/libultra/os/setcompare
60 46F0 80004B50 src/libultra/libc/bcopy.s src/libultra/libc/bcopy
61 4A00 80004E60 src/libultra/os/resetglobalintmask.s src/libultra/os/resetglobalintmask
62 4A60 80004EC0 src/libultra/os/interrupt.s src/libultra/os/interrupt
63 4AF0 80004F50 src/libultra/io/vi.s src/libultra/io/vi
64 4C10 80005070 src/libultra/io/viswapcontext.s src/libultra/io/viswapcontext
65 4F10 80005370 src/libultra/io/pigetcmdq.s src/libultra/io/pigetcmdq
66 4F40 800053A0 src/libultra/io/epiread.s src/libultra/io/epiread
67 4F90 800053F0 src/libultra/io/visetspecial.s src/libultra/io/visetspecial
68 50F0 80005550 src/libultra/io/cartrominit.s src/libultra/io/cartrominit
69 5250 800056B0 src/libultra/os/setfpccsr.s src/libultra/os/setfpccsr
70 5260 800056C0 src/libultra/os/getfpccsr.s src/libultra/os/getfpccsr
71 5270 800056D0 src/libultra/os/maptlbrdb.s src/libultra/os/maptlbrdb
72 52D0 80005730 src/libultra/os/yieldthread.s src/libultra/os/yieldthread
73 5320 80005780 src/libultra/os/getcause.s src/libultra/os/getcause
74 5330 80005790 src/libultra/io/epirawwrite.s src/libultra/io/epirawwrite
75 5490 800058F0 src/libultra/io/sirawwrite.s src/libultra/io/sirawwrite
76 54E0 80005940 src/libultra/io/vimgr.s src/libultra/io/vimgr
77 57F0 80005C50 src/libultra/io/vigetcurrcontext.s src/libultra/io/vigetcurrcontext
78 5800 80005C60 src/libultra/os/startthread.s src/libultra/os/startthread
79 5950 80005DB0 src/libultra/io/visetyscale.s src/libultra/io/visetyscale
80 59A0 80005E00 src/libultra/io/visetxscale.s src/libultra/io/visetxscale
81 5AB0 80005F10 src/libultra/os/sethwintrroutine.s src/libultra/os/sethwintrroutine
82 5B20 80005F80 src/libultra/os/gethwintrroutine.s src/libultra/os/gethwintrroutine
83 5B50 80005FB0 src/libultra/os/setwatchlo.s src/libultra/os/setwatchlo
84 5B60 80005FC0 data/rsp_boot.text.s data/rsp_boot.text
85 offset vram .data
86 5C30 80006090 data/unk_800093F0.data.s data/unk_800093F0.data
87 5C50 800060B0 data/unk_80009410.data.s data/unk_80009410.data
88 5C70 800060D0 src/boot/idle.s src/boot/idle
89 5C90 800060F0 src/boot/viconfig.s src/boot/viconfig
90 5CA0 80006100 src/boot/z_std_dma.s src/boot/z_std_dma
91 5CB0 80006110 src/boot/z_locale.s src/boot/z_locale
92 5CC0 80006120 src/libultra/io/driverominit.s src/libultra/io/driverominit
93 5CD0 80006130 src/boot/stackcheck.s src/boot/stackcheck
94 5CE0 80006140 src/libultra/io/piacs.s src/libultra/io/piacs
95 5CF0 80006150 src/libultra/io/vimodepallan1.s src/libultra/io/vimodepallan1
96 5D40 800061A0 src/libultra/os/initialize.s src/libultra/os/initialize
97 5D60 800061C0 src/libultra/os/exceptasm.s src/libultra/os/exceptasm
98 5D90 800061F0 src/libultra/os/thread.s src/libultra/os/thread
99 5DB0 80006210 src/libultra/io/pimgr.s src/libultra/io/pimgr
100 5DE0 80006240 src/libultra/os/seteventmesg.s src/libultra/os/seteventmesg
101 5DF0 80006250 src/libultra/os/timerintr.s src/libultra/os/timerintr
102 5E00 80006260 src/libultra/io/vimodentsclan1.s src/libultra/io/vimodentsclan1
103 5E50 800062B0 src/libultra/io/vimodempallan1.s src/libultra/io/vimodempallan1
104 5EA0 80006300 src/libultra/io/vi.s src/libultra/io/vi
105 5F10 80006370 src/libultra/io/cartrominit.s src/libultra/io/cartrominit
106 5F20 80006380 src/libultra/io/vimgr.s src/libultra/io/vimgr
107 offset vram .rodata
108 5F40 800063A0 src/boot/boot_main.s src/boot/boot_main
109 5F50 800063B0 src/boot/idle.s src/boot/idle
110 5F60 800063C0 src/boot/z_std_dma.s src/boot/z_std_dma
111 5FC0 80006420 src/boot/z_locale.s src/boot/z_locale
112 5FD0 80006430 src/boot/stackcheck.s src/boot/stackcheck
113 5FE0 80006440 src/boot/logutils.s src/boot/logutils
114 5FF0 80006450 src/libultra/os/exceptasm.s src/libultra/os/exceptasm
115 6040 800064A0 src/libultra/io/devmgr.s src/libultra/io/devmgr
116 6060 800064C0 src/libultra/os/setintmask.s src/libultra/os/setintmask
117 60E0 80006540 src/boot/build.s src/boot/build
118 offset vram .bss
119 6110 80006570 src/boot/boot_main.s src/boot/boot_main
120 6B00 80006F60 src/boot/idle.s src/boot/idle
121 7710 80007B70 src/boot/z_std_dma.s src/boot/z_std_dma
122 7E80 800082E0 src/boot/yaz0.s src/boot/yaz0
123 8290 800086F0 src/boot/z_locale.s src/boot/z_locale
124 82B0 80008710 src/libultra/io/driverominit.s src/libultra/io/driverominit
125 8330 80008790 src/libultra/io/piacs.s src/libultra/io/piacs
126 8350 800087B0 src/libultra/os/initialize.s src/libultra/os/initialize
127 8360 800087C0 src/libultra/io/pimgr.s src/libultra/io/pimgr
128 97D0 80009C30 src/libultra/os/seteventmesg.s src/libultra/os/seteventmesg
129 9850 80009CB0 src/libultra/os/timerintr.s src/libultra/os/timerintr
130 9890 80009CF0 src/libultra/io/cartrominit.s src/libultra/io/cartrominit
131 9910 80009D70 src/libultra/io/vimgr.s src/libultra/io/vimgr
132 AB30 8000AF90 .end
133
134
135

File diff suppressed because it is too large Load Diff

View File

@@ -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
1 offset vram .text
2 0 80803630 src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.s src/overlays/gamestates/ovl_file_choose/z_file_copy_erase
3 3040 80806670 src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.s src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL
4 6F60 8080A590 src/overlays/gamestates/ovl_file_choose/z_file_choose.s src/overlays/gamestates/ovl_file_choose/z_file_choose
5 offset vram .data
6 D740 80810D70 src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.s src/overlays/gamestates/ovl_file_choose/z_file_nameset_data
7 E010 80811640 src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.s src/overlays/gamestates/ovl_file_choose/z_file_copy_erase
8 E050 80811680 src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.s src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL
9 E2B0 808118E0 src/overlays/gamestates/ovl_file_choose/z_file_choose.s src/overlays/gamestates/ovl_file_choose/z_file_choose
10 offset vram .rodata
11 E5F0 80811C20 src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.s src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL
12 E600 80811C30 src/overlays/gamestates/ovl_file_choose/z_file_choose.s src/overlays/gamestates/ovl_file_choose/z_file_choose
13 offset vram .ovl
14 E620 80811C50 src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc.s src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc
15 offset vram .bss
16 EC10 80812240 src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.s src/overlays/gamestates/ovl_file_choose/z_file_copy_erase
17 EC20 80812250 src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.s src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL
18 EC30 80812260 .end
19
20
21
22

View File

@@ -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
1 offset vram .text
2 0 80812260 src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect
3 2400 80814660 src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug
4 43B0 80816610 src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment
5 5E30 80818090 src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_item
6 7E20 8081A080 src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL
7 B100 8081D360 src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt
8 B300 8081D560 src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL
9 15350 808275B0 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.s src/overlays/misc/ovl_kaleido_scope/z_lmap_mark
10 offset vram .data
11 15A10 80827C70 src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect
12 15BC0 80827E20 src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug
13 15D90 80827FF0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment
14 15DC0 80828020 src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_item
15 15E30 80828090 src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL
16 16080 808282E0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt
17 16090 808282F0 src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL
18 16C10 80828E70 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.s src/overlays/misc/ovl_kaleido_scope/z_lmap_mark
19 16C60 80828EC0 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.s src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data
20 offset vram .rodata
21 1ADC0 8082D020 src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug
22 1AEA0 8082D100 src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment
23 1AEB0 8082D110 src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL
24 1B190 8082D3F0 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.s src/overlays/misc/ovl_kaleido_scope/z_lmap_mark
25 1B240 8082D4A0 src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.s src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data
26 offset vram .ovl
27 1B2C0 8082D560 src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc.s src/overlays/misc/ovl_kaleido_scope/ovl_kaleido_scope_reloc
28 offset vram .bss
29 1C9C0 8082EC20 src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.s src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL
30 1CA30 8082EC90 .end
31
32
33
34

View File

@@ -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()