From 305cbabe1b2fae8e3f9b59355aa8024c503b3d22 Mon Sep 17 00:00:00 2001 From: RevoSucks Date: Sun, 6 Aug 2023 01:38:24 -0400 Subject: [PATCH] fragments 1: the reloc menace --- Makefile | 5 ++-- splat.yaml | 54 ++++++++++++++++++++++++++++++++++++------ tools/symbol_addrs.txt | 17 ++++++++++++- undefined_syms.txt | 1 + 4 files changed, 67 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 12d8235..7df8910 100644 --- a/Makefile +++ b/Makefile @@ -23,8 +23,9 @@ ROM := $(TARGET).z64 ELF := $(BUILD_DIR)/$(TARGET).elf LD_SCRIPT := $(TARGET).ld LD_MAP := $(BUILD_DIR)/$(TARGET).map -ASM_DIRS := asm asm/os asm/libleo asm/libultra asm/libultra/os asm/libultra/io asm/libultra/gu asm/libultra/libc asm/libultra/al asm/data -DATA_DIRS := bin assets +# TODO: Recursively make fragment folders correctly. +ASM_DIRS := asm asm/os asm/libleo asm/libultra asm/libultra/os asm/libultra/io asm/libultra/gu asm/libultra/libc asm/libultra/al asm/data asm/fragments asm/data/fragments/1/ asm/data/fragments/2/ asm/data/fragments/3/ asm/fragments/1/ asm/fragments/2/ asm/fragments/3/ +DATA_DIRS := bin assets assets/fragments assets/fragments/1/ assets/fragments/2/ assets/fragments/3/ SRC_DIRS := $(shell find src -type d) C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) diff --git a/splat.yaml b/splat.yaml index cdf5301..7a3c517 100644 --- a/splat.yaml +++ b/splat.yaml @@ -427,16 +427,55 @@ segments: - {vram: 0x80104b70, type: .bss, name: libultra/io/conteepread} - [0x7F980] - # rest of the ROM, assets usually - - name: assets - type: bin + # Probably the GB Tower Emulator + - name: fragment1 + type: code bss_size: 0x0 start: 0x7F980 - vram: 0x80000000 # I dunno + vram: 0x81200000 # I dunno + subsegments: + - [0x7F980, hasm, fragments/1/fragment1_header] # todo: disassemble fragment + - [0x7F9A0, asm, fragments/1/fragment1_code] # todo: disassemble fragment + - [0x89020, hasm, fragments/1/fragment1_code_asm] + - [0x8D1A0, data, fragments/1/fragment1_data] + - [0xA8E80, rodata, fragments/1/fragment1_rodata] + - [0xAAB60, bin, fragments/1/fragment1_relocs] + - [0xADC80, bin, fragments/1/fragment1_yay0_0] + - [0xF4920, bin, fragments/1/fragment1_yay0_1] + - [0xF5450, bin, fragments/1/fragment1_yay0_2] + - [0xFDE40, bin, fragments/1/fragment1_yay0_3] + - [0x102BA0, bin, fragments/1/fragment1_yay0_4] + + - name: fragment2 + type: code + bss_size: 0x0 + start: 0x107FA0 + vram: 0x87800000 + subsegments: + - [0x107FA0, hasm, fragments/2/fragment2_header] # todo: disassemble fragment + - [0x107FC0, asm, fragments/2/fragment2_code] # todo: disassemble fragment + - [0x10E2D0, data, fragments/2/fragment2_data] + - [0x117850, rodata, fragments/2/fragment2_rodata] + - [0x1179C0, bin, fragments/2/fragment2_relocs] + + - name: fragment3 + type: code + bss_size: 0x0 + start: 0x118990 + vram: 0x87900000 + subsegments: + - [0x118990, hasm, fragments/3/fragment3_header] # todo: disassemble fragment + - [0x1189B0, asm, fragments/3/fragment3_code] # todo: disassemble fragment + - [0x11C730, data, fragments/3/fragment3_data] + - [0x11E810, rodata, fragments/3/fragment3_rodata] + - [0x11E9D0, bin, fragments/3/fragment3_reloc] + + - name: assets + type: code + bss_size: 0x0 + start: 0x11F560 + vram: 0x81299010 # I dunno part 2 subsegments: - - [0x7F980, bin, fragment1] # todo: disassemble fragment - - [0x107FA0, bin, fragment2] # todo: disassemble fragment - - [0x118990, bin, fragment3] # todo: disassemble fragment - [0x11F560, bin, fragment4] # todo: disassemble fragment - [0x120920, bin, fragment5] # todo: disassemble fragment - [0x120A10, bin, fragment6] # todo: disassemble fragment @@ -511,5 +550,6 @@ segments: - [0x3B8960, bin, fragment75] # todo: disassemble fragment - [0x3B9590, bin, fragment76] # todo: disassemble fragment - [0x3B9620, bin, fragment77] # todo: disassemble fragment + - [0x3B96B0] - [0x3B96B0, bin] - [0x2000000] diff --git a/tools/symbol_addrs.txt b/tools/symbol_addrs.txt index de4c4c5..4ec1fb4 100644 --- a/tools/symbol_addrs.txt +++ b/tools/symbol_addrs.txt @@ -534,4 +534,19 @@ Cont_SetupControllers = 0x80005DB8; HAL_Strcpy = 0x8000A530; HAL_Strcpy2 = 0x8000A560; HAL_Strcmp = 0x8000A5B8; -HAL_Memset = 0x8000A5FC; \ No newline at end of file +HAL_Memset = 0x8000A5FC; +.L8120A860 = 0x8120A860; +D_8780FA30 = 0x8780FA30; +D_8780FA34 = 0x8780FA34; +D_87906044 = 0x87906044; +D_87906048 = 0x87906048; +D_87906060 = 0x87906060; +D_87906064 = 0x87906064; +D_87906068 = 0x87906068; +D_8790606C = 0x8790606C; +D_87906070 = 0x87906070; +D_87906094 = 0x87906094; +D_87906098 = 0x87906098; +D_879060A4 = 0x879060A4; +D_879060C4 = 0x879060C4; +D_879060C8 = 0x879060C8; \ No newline at end of file diff --git a/undefined_syms.txt b/undefined_syms.txt index d29e8f6..2c6b736 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -11,3 +11,4 @@ LeoDiskHandle = 0x801024A8; piThreadStack = 0x801026D0; LEOZONE_OUTERCYL_TBL = 0x8007DD08; LEOinterruptThreadStack = 0x80100638; +.L8120A860 = 0x8120A860;