finish dissasembling collect rings

This commit is contained in:
Oliver Bell committed 2023-05-13 21:45:12 +01:00
1 parent 64b9426dc9
commit 07e01bb854
13 files changed
+3043 -2630

No files matched your search

+2 -1
View File
@@ -38,6 +38,7 @@ gUnknown_08CB41C0:
gUnknown_08CBAC04:
.incbin "multi_boot/signed_collect_rings/mb_signed_collect_rings.gba.lz"
@; another rom??
.global gUnknown_08CD0728
gUnknown_08CD0728:
.incbin "baserom.gba", 0x00CD0728, 0x2DDC
.incbin "multi_boot/subgame_loader_2/subgame_loader_2.gba.lz"
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,82 @@
.include "../../../asm/macros/function.inc"
.include "../../../constants/gba_constants.inc"
.syntax unified
.arm
.global start_vector
start_vector:
mov r0, #0x12
msr cpsr_fc, r0
ldr sp, _020001B8 @ =gUnknown_03007FA0
mov r0, #0x1f
msr cpsr_fc, r0
ldr sp, _020001B4 @ =gUnknown_03007F00
ldr r1, _02000280 @ =gUnknown_03007FFC
add r0, pc, #0x18 @ =sub_020001BC
str r0, [r1]
ldr r1, _02000284 @ =sub_02001898
mov lr, pc
bx r1
b start_vector
.align 2, 0
_020001B4: .4byte gUnknown_03007F00
_020001B8: .4byte gUnknown_03007FA0
arm_func_start sub_020001BC
sub_020001BC: @ 0x020001BC
mov r3, #0x4000000
add r3, r3, #0x200
ldr r2, [r3]
and r1, r2, r2, lsr #16
mov r2, #0
ands r0, r1, #0x2000
_020001D4:
bne _020001D4
ands r0, r1, #0xc0
bne _0200026C
add r2, r2, #4
ands r0, r1, #1
bne _0200026C
add r2, r2, #4
ands r0, r1, #2
bne _0200026C
add r2, r2, #4
ands r0, r1, #4
bne _0200026C
add r2, r2, #4
ands r0, r1, #8
bne _0200026C
add r2, r2, #4
ands r0, r1, #0x10
bne _0200026C
add r2, r2, #4
ands r0, r1, #0x20
bne _0200026C
add r2, r2, #4
ands r0, r1, #0x100
bne _0200026C
add r2, r2, #4
ands r0, r1, #0x200
bne _0200026C
add r2, r2, #4
ands r0, r1, #0x400
bne _0200026C
add r2, r2, #4
ands r0, r1, #0x800
bne _0200026C
add r2, r2, #4
ands r0, r1, #0x1000
bne _0200026C
add r2, r2, #4
ands r0, r1, #0x2000
_0200026C:
strh r0, [r3, #2]
ldr r1, _02000288 @ =gUnknown_03000790
add r1, r1, r2
ldr r0, [r1]
bx r0
.align 2, 0
_02000280: .4byte gUnknown_03007FFC
_02000284: .4byte sub_02001898
_02000288: .4byte gUnknown_03000790
@@ -0,0 +1,45 @@
.include "../../../asm/macros/function.inc"
.include "../../../constants/gba_constants.inc"
.syntax unified
.arm
_entry: @ 0x02000000
b start_vector
.global RomHeaderNintendoLogo
RomHeaderNintendoLogo:
.space 156
RomHeaderGameTitle:
.space 12
.global RomHeaderGameCode
RomHeaderGameCode:
.space 4
RomHeaderMakerCode:
.space 2
.global RomHeaderMagic
RomHeaderMagic:
.byte 0
RomHeaderMainUnitCode:
.byte 0
RomHeaderDeviceType:
.byte 0
RomHeaderReserved1:
.space 7
.global RomHeaderSoftwareVersion
RomHeaderSoftwareVersion:
.byte 0
RomHeaderChecksum:
.byte 0
RomHeaderReserved2:
.space 2
@@ -0,0 +1 @@
768694bad480aad0b33399f7499e332248cf0faa collect_rings.gba
@@ -1,5 +1,174 @@
.section .rodata
.global gRomData
.global gUnknown_02014F10
gUnknown_02014F10:
.incbin "data/rom_data.bin", 0x00014E50, 0x7d1C
.incbin "data/rom_data.bin", 0x00014E50, 0x34
.global gUnknown_02014F44
gUnknown_02014F44:
.incbin "data/rom_data.bin", 0x00014E84, 0x38
.global gUnknown_02014F7C
gUnknown_02014F7C:
.incbin "data/rom_data.bin", 0x00014EBC, 0xC
.global gUnknown_02014F88
gUnknown_02014F88:
.incbin "data/rom_data.bin", 0x00014EC8, 0x30
.global gUnknown_02014FB8
gUnknown_02014FB8:
.incbin "data/rom_data.bin", 0x00014EF8, 0xA00
.global gUnknown_020159B8
gUnknown_020159B8:
.incbin "data/rom_data.bin", 0x000158F8, 0x8
.global gUnknown_020159C0
gUnknown_020159C0:
.incbin "data/rom_data.bin", 0x00015900, 0x30
.global gUnknown_020159F0
gUnknown_020159F0:
.incbin "data/rom_data.bin", 0x00015930, 0x18
.global gUnknown_02015A08
gUnknown_02015A08:
.incbin "data/rom_data.bin", 0x00015948, 0x1C
.global gUnknown_02015A24
gUnknown_02015A24:
.incbin "data/rom_data.bin", 0x00015964, 0x74
.global gUnknown_02015A98
gUnknown_02015A98:
.incbin "data/rom_data.bin", 0x000159D8, 0x6
.global gUnknown_02015A9E
gUnknown_02015A9E:
.incbin "data/rom_data.bin", 0x000159DE, 0x10
.global gUnknown_02015AAE
gUnknown_02015AAE:
.incbin "data/rom_data.bin", 0x000159EE, 0xE
.global gUnknown_02015ABC
gUnknown_02015ABC:
.incbin "data/rom_data.bin", 0x000159FC, 0x3C
.global gUnknown_02015AF8
gUnknown_02015AF8:
.incbin "data/rom_data.bin", 0x00015A38, 0x20
.global gUnknown_02015B18
gUnknown_02015B18:
.incbin "data/rom_data.bin", 0x00015A58, 0x8
.global gUnknown_02015B20
gUnknown_02015B20:
.incbin "data/rom_data.bin", 0x00015A60, 0x4
.global gUnknown_02015B24
gUnknown_02015B24:
.incbin "data/rom_data.bin", 0x00015A64, 0x14
.global gUnknown_02015B38
gUnknown_02015B38:
.incbin "data/rom_data.bin", 0x00015A78, 0xC
.global gUnknown_02015B44
gUnknown_02015B44:
.incbin "data/rom_data.bin", 0x00015A84, 0x100
.global gUnknown_02015C44
gUnknown_02015C44:
.incbin "data/rom_data.bin", 0x00015B84, 0x4
.global gUnknown_02015C48
gUnknown_02015C48:
.incbin "data/rom_data.bin", 0x00015B88, 0x4
.global gUnknown_02015C4C
gUnknown_02015C4C:
.incbin "data/rom_data.bin", 0x00015B8C, 0x4
.global gUnknown_02015C50
gUnknown_02015C50:
.incbin "data/rom_data.bin", 0x00015B90, 0x2
.global gUnknown_02015C52
gUnknown_02015C52:
.incbin "data/rom_data.bin", 0x00015B92, 0x1CC
.global gUnknown_02015E1E
gUnknown_02015E1E:
.incbin "data/rom_data.bin", 0x00015D5E, 0x14
.global gUnknown_02015E32
gUnknown_02015E32:
.incbin "data/rom_data.bin", 0x00015D72, 0xA
.global gUnknown_02015E3C
gUnknown_02015E3C:
.incbin "data/rom_data.bin", 0x00015D7C, 0x1A
.global gUnknown_02015E56
gUnknown_02015E56:
.incbin "data/rom_data.bin", 0x00015D96, 0x8
.global gUnknown_02015E5E
gUnknown_02015E5E:
.incbin "data/rom_data.bin", 0x00015D9E, 0xE
.global gUnknown_02015E6C
gUnknown_02015E6C:
.incbin "data/rom_data.bin", 0x00015DAC, 0x90
.global gUnknown_02015EFC
gUnknown_02015EFC:
.incbin "data/rom_data.bin", 0x00015E3C, 0xB4
.global gUnknown_02015FB0
gUnknown_02015FB0:
.incbin "data/rom_data.bin", 0x00015EF0, 0x30
.global gUnknown_02015FE0
gUnknown_02015FE0:
.incbin "data/rom_data.bin", 0x00015F20, 0x18
.global gUnknown_02015FF8
gUnknown_02015FF8:
.incbin "data/rom_data.bin", 0x00015F38, 0x84
.global gUnknown_0201607C
gUnknown_0201607C:
.incbin "data/rom_data.bin", 0x00015FBC, 0x18
.global gUnknown_02016094
gUnknown_02016094:
.incbin "data/rom_data.bin", 0x00015FD4, 0x3C
.global gUnknown_020160D0
gUnknown_020160D0:
.incbin "data/rom_data.bin", 0x00016010, 0x10
.global gUnknown_020160E0
gUnknown_020160E0:
.incbin "data/rom_data.bin", 0x00016020, 0x34
.global gUnknown_02016114
gUnknown_02016114:
.incbin "data/rom_data.bin", 0x00016054, 0xC48
.global gUnknown_02016D5C
gUnknown_02016D5C:
.incbin "data/rom_data.bin", 0x00016C9C, 0x30
.global gUnknown_02016D8C
gUnknown_02016D8C:
.incbin "data/rom_data.bin", 0x00016CCC, 0x5A34
.global gUnknown_0201C7C0
gUnknown_0201C7C0:
.incbin "data/rom_data.bin", 0x0001C700, 0x46C
@@ -1,7 +1,16 @@
SECTIONS {
. = 0x03000000;
IWRAM (NOLOAD) :
ALIGN(4)
{
INCLUDE "sym_iwram.txt"
}
. = 0x20000C0;
.text :
ALIGN(4) {
build/collect_rings/asm/rom_header.o(.text);
build/collect_rings/asm/crt0.o(.text);
build/collect_rings/asm/code.o(.text);
}
@@ -0,0 +1,204 @@
. = 0x00000000; gUnknown_03000000 = .;
. = 0x00000001; gUnknown_03000001 = .;
. = 0x00000004; gUnknown_03000004 = .;
. = 0x00000006; gUnknown_03000006 = .;
. = 0x00000008; gUnknown_03000008 = .;
. = 0x00000009; gUnknown_03000009 = .;
. = 0x0000000C; gUnknown_0300000C = .;
. = 0x00000010; gUnknown_03000010 = .;
. = 0x00000020; gUnknown_03000020 = .;
. = 0x00000021; gUnknown_03000021 = .;
. = 0x00000022; gUnknown_03000022 = .;
. = 0x00000025; gUnknown_03000025 = .;
. = 0x0000002C; gUnknown_0300002C = .;
. = 0x0000002D; gUnknown_0300002D = .;
. = 0x0000002E; gUnknown_0300002E = .;
. = 0x0000002F; gUnknown_0300002F = .;
. = 0x00000030; gUnknown_03000030 = .;
. = 0x00000031; gUnknown_03000031 = .;
. = 0x00000032; gUnknown_03000032 = .;
. = 0x00000034; gUnknown_03000034 = .;
. = 0x00000035; gUnknown_03000035 = .;
. = 0x0000003C; gUnknown_0300003C = .;
. = 0x0000003D; gUnknown_0300003D = .;
. = 0x00000040; gUnknown_03000040 = .;
. = 0x00000050; gUnknown_03000050 = .;
. = 0x00000052; gUnknown_03000052 = .;
. = 0x00000054; gUnknown_03000054 = .;
. = 0x00000056; gUnknown_03000056 = .;
. = 0x00000058; gUnknown_03000058 = .;
. = 0x0000005C; gUnknown_0300005C = .;
. = 0x0000005D; gUnknown_0300005D = .;
. = 0x0000005E; gUnknown_0300005E = .;
. = 0x00000060; gUnknown_03000060 = .;
. = 0x00000061; gUnknown_03000061 = .;
. = 0x00000064; gUnknown_03000064 = .;
. = 0x00000066; gUnknown_03000066 = .;
. = 0x00000068; gUnknown_03000068 = .;
. = 0x0000006A; gUnknown_0300006A = .;
. = 0x0000006C; gUnknown_0300006C = .;
. = 0x00000080; gUnknown_03000080 = .;
. = 0x00000082; gUnknown_03000082 = .;
. = 0x000002B0; gUnknown_030002B0 = .;
. = 0x000002B4; gUnknown_030002B4 = .;
. = 0x000002B6; gUnknown_030002B6 = .;
. = 0x00000378; gUnknown_03000378 = .;
. = 0x00000400; gUnknown_03000400 = .;
. = 0x00000410; gUnknown_03000410 = .;
. = 0x00000420; gUnknown_03000420 = .;
. = 0x00000430; gUnknown_03000430 = .;
. = 0x00000434; gUnknown_03000434 = .;
. = 0x0000043C; gUnknown_0300043C = .;
. = 0x00000540; gUnknown_03000540 = .;
. = 0x00000730; gUnknown_03000730 = .;
. = 0x00000770; gUnknown_03000770 = .;
. = 0x00000790; gUnknown_03000790 = .;
. = 0x000007D0; gUnknown_030007D0 = .;
. = 0x000009D0; gUnknown_030009D0 = .;
. = 0x000017D0; gUnknown_030017D0 = .;
. = 0x000017D4; gUnknown_030017D4 = .;
. = 0x000017E0; gUnknown_030017E0 = .;
. = 0x00001820; gUnknown_03001820 = .;
. = 0x00001830; gUnknown_03001830 = .;
. = 0x00001850; gUnknown_03001850 = .;
. = 0x00001860; gUnknown_03001860 = .;
. = 0x00001864; gUnknown_03001864 = .;
. = 0x00001868; gUnknown_03001868 = .;
. = 0x0000186C; gUnknown_0300186C = .;
. = 0x00001870; gUnknown_03001870 = .;
. = 0x000018C0; gUnknown_030018C0 = .;
. = 0x000018C8; gUnknown_030018C8 = .;
. = 0x000018D0; gUnknown_030018D0 = .;
. = 0x000018E0; gUnknown_030018E0 = .;
. = 0x00001900; gUnknown_03001900 = .;
. = 0x00001920; gUnknown_03001920 = .;
. = 0x00001924; gUnknown_03001924 = .;
. = 0x00001928; gUnknown_03001928 = .;
. = 0x0000192C; gUnknown_0300192C = .;
. = 0x00001930; gUnknown_03001930 = .;
. = 0x00001934; gUnknown_03001934 = .;
. = 0x00001940; gUnknown_03001940 = .;
. = 0x00001B40; gUnknown_03001B40 = .;
. = 0x00002040; gUnknown_03002040 = .;
. = 0x00002240; gUnknown_03002240 = .;
. = 0x00002244; gUnknown_03002244 = .;
. = 0x00002250; gUnknown_03002250 = .;
. = 0x0000225C; gUnknown_0300225C = .;
. = 0x00002260; gUnknown_03002260 = .;
. = 0x00002262; gUnknown_03002262 = .;
. = 0x00002263; gUnknown_03002263 = .;
. = 0x00002270; gUnknown_03002270 = .;
. = 0x00002280; gUnknown_03002280 = .;
. = 0x0000228C; gUnknown_0300228C = .;
. = 0x00002290; gUnknown_03002290 = .;
. = 0x00002298; gUnknown_03002298 = .;
. = 0x0000229C; gUnknown_0300229C = .;
. = 0x000022A0; gUnknown_030022A0 = .;
. = 0x000022A8; gUnknown_030022A8 = .;
. = 0x000022B0; gUnknown_030022B0 = .;
. = 0x000026B0; gUnknown_030026B0 = .;
. = 0x000026C0; gUnknown_030026C0 = .;
. = 0x000026D0; gUnknown_030026D0 = .;
. = 0x000026D4; gUnknown_030026D4 = .;
. = 0x000026E0; gUnknown_030026E0 = .;
. = 0x000026EC; gUnknown_030026EC = .;
. = 0x000026F0; gUnknown_030026F0 = .;
. = 0x00002770; gUnknown_03002770 = .;
. = 0x00002774; gUnknown_03002774 = .;
. = 0x00002780; gUnknown_03002780 = .;
. = 0x00002800; gUnknown_03002800 = .;
. = 0x00002810; gUnknown_03002810 = .;
. = 0x00002820; gUnknown_03002820 = .;
. = 0x00002830; gUnknown_03002830 = .;
. = 0x00002840; gUnknown_03002840 = .;
. = 0x0000284E; gUnknown_0300284E = .;
. = 0x00002854; gUnknown_03002854 = .;
. = 0x00002858; gUnknown_03002858 = .;
. = 0x0000285C; gUnknown_0300285C = .;
. = 0x00002860; gUnknown_03002860 = .;
. = 0x00002A60; gUnknown_03002A60 = .;
. = 0x00002A64; gUnknown_03002A64 = .;
. = 0x00002A68; gUnknown_03002A68 = .;
. = 0x00002A6C; gUnknown_03002A6C = .;
. = 0x00002ABC; gUnknown_03002ABC = .;
. = 0x00002AC0; gUnknown_03002AC0 = .;
. = 0x00002AC4; gUnknown_03002AC4 = .;
. = 0x00002AD0; gUnknown_03002AD0 = .;
. = 0x00002AE0; gUnknown_03002AE0 = .;
. = 0x00004D30; gUnknown_03004D30 = .;
. = 0x00004D34; gUnknown_03004D34 = .;
. = 0x00004D38; gUnknown_03004D38 = .;
. = 0x00004D3C; gUnknown_03004D3C = .;
. = 0x00004D40; gUnknown_03004D40 = .;
. = 0x00004D60; gUnknown_03004D60 = .;
. = 0x00004D70; gUnknown_03004D70 = .;
. = 0x00004D76; gUnknown_03004D76 = .;
. = 0x00005170; gUnknown_03005170 = .;
. = 0x00005370; gUnknown_03005370 = .;
. = 0x00005374; gUnknown_03005374 = .;
. = 0x00005378; gUnknown_03005378 = .;
. = 0x00005380; gUnknown_03005380 = .;
. = 0x00005394; gUnknown_03005394 = .;
. = 0x00005398; gUnknown_03005398 = .;
. = 0x000053A0; gUnknown_030053A0 = .;
. = 0x000053A4; gUnknown_030053A4 = .;
. = 0x000053A8; gUnknown_030053A8 = .;
. = 0x000053AC; gUnknown_030053AC = .;
. = 0x000053B0; gUnknown_030053B0 = .;
. = 0x000053CC; gUnknown_030053CC = .;
. = 0x000053D0; gUnknown_030053D0 = .;
. = 0x000053D4; gUnknown_030053D4 = .;
. = 0x000053D8; gUnknown_030053D8 = .;
. = 0x000053E0; gUnknown_030053E0 = .;
. = 0x000053E4; gUnknown_030053E4 = .;
. = 0x000053E8; gUnknown_030053E8 = .;
. = 0x000053EC; gUnknown_030053EC = .;
. = 0x000053F0; gUnknown_030053F0 = .;
. = 0x000053F4; gUnknown_030053F4 = .;
. = 0x000053F8; gUnknown_030053F8 = .;
. = 0x000053FC; gUnknown_030053FC = .;
. = 0x00005400; gUnknown_03005400 = .;
. = 0x00005404; gUnknown_03005404 = .;
. = 0x00005408; gUnknown_03005408 = .;
. = 0x00005418; gUnknown_03005418 = .;
. = 0x00005428; gUnknown_03005428 = .;
. = 0x0000542C; gUnknown_0300542C = .;
. = 0x00005430; gUnknown_03005430 = .;
. = 0x00005434; gUnknown_03005434 = .;
. = 0x00005444; gUnknown_03005444 = .;
. = 0x00005448; gUnknown_03005448 = .;
. = 0x0000544C; gUnknown_0300544C = .;
. = 0x00005454; gUnknown_03005454 = .;
. = 0x00005458; gUnknown_03005458 = .;
. = 0x00005460; gUnknown_03005460 = .;
. = 0x00005468; gUnknown_03005468 = .;
. = 0x0000546C; gUnknown_0300546C = .;
. = 0x00005470; gUnknown_03005470 = .;
. = 0x00005474; gUnknown_03005474 = .;
. = 0x00005478; gUnknown_03005478 = .;
. = 0x00005480; gUnknown_03005480 = .;
. = 0x00005500; gUnknown_03005500 = .;
. = 0x00005510; gUnknown_03005510 = .;
. = 0x00005520; gUnknown_03005520 = .;
. = 0x00005524; gUnknown_03005524 = .;
. = 0x00005528; gUnknown_03005528 = .;
. = 0x00005530; gUnknown_03005530 = .;
. = 0x0000553C; gUnknown_0300553C = .;
. = 0x00005544; gUnknown_03005544 = .;
. = 0x00005548; gUnknown_03005548 = .;
. = 0x00005550; gUnknown_03005550 = .;
. = 0x00005590; gUnknown_03005590 = .;
. = 0x00005650; gUnknown_03005650 = .;
. = 0x000056B8; gUnknown_030056B8 = .;
. = 0x000056C0; gUnknown_030056C0 = .;
. = 0x00005780; gUnknown_03005780 = .;
. = 0x000057C4; gUnknown_030057C4 = .;
. = 0x000057C8; gUnknown_030057C8 = .;
. = 0x000057D0; gUnknown_030057D0 = .;
. = 0x000057D4; gUnknown_030057D4 = .;
. = 0x000057D8; gUnknown_030057D8 = .;
. = 0x00007F00; gUnknown_03007F00 = .;
. = 0x00007FA0; gUnknown_03007FA0 = .;
. = 0x00007FF0; gUnknown_03007FF0 = .;
. = 0x00007FF8; gUnknown_03007FF8 = .;
. = 0x00007FFC; gUnknown_03007FFC = .;
@@ -1 +1 @@
61116586a27d700a2d38ce6eaedfbbb32317dd9d mb_signed_collect_rings.gba
77d836a9ac6fb0397f0330675d8cb9d95572d562 mb_signed_collect_rings.gba
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
725ac63883901d03c954d0ecadd0b37b00961cac sa2_europe.gba
b0f64bdca097f2de8f05ac4c8caea2b80c5faeb1 sa2_europe.gba
+7 -7
View File
@@ -1,10 +1,10 @@
rom_start = 0x0203B000
end_of_code = 0x0203C206
end_of_data = 0x0203f72c
rom_start = 0x020000C0
end_of_code = 0x02014F10
end_of_data = 0x0201cc2c
addresses = set()
with open('multi_boot/subgame_loader/signed_payload/payload/asm/code.s') as code:
with open('multi_boot/signed_collect_rings/collect_rings/asm/code.s') as code:
for line in code.readlines():
line = line.strip()
if ".4byte 0x02" in line:
@@ -37,7 +37,7 @@ for i in range(len(sorted_addresses)):
summed = 0
with open("multi_boot/subgame_loader/signed_payload/payload/data/new_data.s", "w") as data_file:
with open("multi_boot/signed_collect_rings/collect_rings/data/new_data.s", "w") as data_file:
data_file.write(' .section .rodata\n')
data_file.write('\n')
for raw_addr, addr, size in addresses_with_size:
@@ -50,8 +50,8 @@ with open("multi_boot/subgame_loader/signed_payload/payload/data/new_data.s", "w
""")
print(hex(summed))
with open("multi_boot/subgame_loader/signed_payload/payload/asm/new_code.s", "w") as new_rom:
existing_code = "".join(open("multi_boot/subgame_loader/signed_payload/payload/asm/code.s").readlines())
with open("multi_boot/signed_collect_rings/collect_rings/asm/new_code.s", "w") as new_rom:
existing_code = "".join(open("multi_boot/signed_collect_rings/collect_rings/asm/code.s").readlines())
for _, addr, __ in addresses_with_size:
var = to_var_name(addr)
existing_code = existing_code.replace(addr, to_var_name(addr))
+9 -15
View File
@@ -3,21 +3,15 @@ iwram_syms = {}
replace = {}
max_ewram = "0x0202EB6C"
max_ewram = "0x02014F10"
with open("multi_boot/subgame_loader/signed_payload/payload/asm/code.s") as code_file:
with open("multi_boot/signed_collect_rings/collect_rings/asm/code.s") as code_file:
for line in code_file.readlines():
line = line.strip()
if "0x030" in line and ":" not in line:
addr = line.split("0x03")[1].split(" ")[0]
iwram_syms[f"0x00{addr}"] = f"gUnknown_03{addr}"
replace[f"0x03{addr}"] = f"gUnknown_03{addr}"
elif "0x020" in line and ":" not in line:
addr = line.split("0x02")[1].split(" ")[0]
full_addr = f"0x02{addr}"
if full_addr < max_ewram:
ewram_syms[f"0x00{addr}"] = f"gUnknown_02{addr}"
replace[full_addr] = f"gUnknown_02{addr}"
code_file.seek(0)
code_content = code_file.read()
@@ -25,18 +19,18 @@ with open("multi_boot/subgame_loader/signed_payload/payload/asm/code.s") as code
for addr, sym in replace.items():
code_content = code_content.replace(addr, sym)
with open("multi_boot/subgame_loader/signed_payload/payload/asm/new_code.s", "w") as new_code:
with open("multi_boot/signed_collect_rings/collect_rings/asm/new_code.s", "w") as new_code:
new_code.write(code_content)
with open("multi_boot/subgame_loader/signed_payload/payload/sym_iwram.txt", "w") as iwram_sym_file:
with open("multi_boot/signed_collect_rings/collect_rings/asm/sym_iwram.txt", "w") as iwram_sym_file:
keys = sorted(iwram_syms.keys())
for addr in keys:
sym = iwram_syms[addr]
iwram_sym_file.write(f". = {addr}; {sym} = .;\n")
with open("multi_boot/subgame_loader/signed_payload/payload/sym_ewram.txt", "w") as ewram_sym_file:
keys = sorted(ewram_syms.keys())
for addr in keys:
sym = ewram_syms[addr]
ewram_sym_file.write(f". = {addr}; {sym} = .;\n")
# with open("multi_boot/signed_collect_rings/collect_rings/asm/sym_ewram.txt", "w") as ewram_sym_file:
# keys = sorted(ewram_syms.keys())
# for addr in keys:
# sym = ewram_syms[addr]
# ewram_sym_file.write(f". = {addr}; {sym} = .;\n")