From 8d067210581056b6b86e42348a50c297618f6e52 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 31 Dec 2023 17:42:04 -0600 Subject: [PATCH] Split some larger menu rels ment, mpex, and mgmode are all split --- config/GMPE01_00/rels/mentDll/splits.txt | 10 +++++ config/GMPE01_00/rels/mgmodedll/splits.txt | 48 +++++++++++++++++++++ config/GMPE01_00/rels/mgmodedll/symbols.txt | 6 +-- config/GMPE01_00/rels/mpexDll/splits.txt | 23 ++++++++++ config/GMPE01_00/rels/mpexDll/symbols.txt | 3 +- configure.py | 47 +++++++++++++++----- 6 files changed, 123 insertions(+), 14 deletions(-) diff --git a/config/GMPE01_00/rels/mentDll/splits.txt b/config/GMPE01_00/rels/mentDll/splits.txt index 531cd645..57db84a5 100644 --- a/config/GMPE01_00/rels/mentDll/splits.txt +++ b/config/GMPE01_00/rels/mentDll/splits.txt @@ -5,3 +5,13 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mentDll/common.c: + .text start:0x00000000 end:0x0000658C + .rodata start:0x00000000 end:0x000000E8 + +REL/mentDll/main.c: + .text start:0x0000658C end:0x00023A38 + .rodata start:0x000000E8 end:0x00000528 + .data start:0x00000000 end:0x000006D0 + .bss start:0x00000000 end:0x000036C4 diff --git a/config/GMPE01_00/rels/mgmodedll/splits.txt b/config/GMPE01_00/rels/mgmodedll/splits.txt index 531cd645..44d8bd41 100644 --- a/config/GMPE01_00/rels/mgmodedll/splits.txt +++ b/config/GMPE01_00/rels/mgmodedll/splits.txt @@ -5,3 +5,51 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/mgmodedll/mgmode.c: + .text start:0x000000A0 end:0x00006C18 + .rodata start:0x00000000 end:0x00000160 + .data start:0x00000000 end:0x000000A0 + .bss start:0x00000000 end:0x000002E0 + +REL/mgmodedll/free_play.c: + .text start:0x00006C18 end:0x0000D8D0 + .rodata start:0x00000160 end:0x000002F0 + .data start:0x000000A0 end:0x00000148 + .bss start:0x000002E0 end:0x00000370 + +REL/mgmodedll/record.c: + .text start:0x0000D8D0 end:0x0000E72C + .rodata start:0x000002F0 end:0x00000390 + .bss start:0x00000370 end:0x00000388 + +REL/mgmodedll/battle.c: + .text start:0x0000E72C end:0x00013418 + .rodata start:0x00000390 end:0x000004D8 + .data start:0x00000148 end:0x00000168 + .bss start:0x00000388 end:0x000003A8 + +REL/mgmodedll/tictactoe.c: + .text start:0x00013418 end:0x00018DF8 + .rodata start:0x000004D8 end:0x000005B0 + .data start:0x00000168 end:0x000001E0 + .bss start:0x000003A8 end:0x000003C0 + +REL/mgmodedll/main.c: + .text start:0x00018DF8 end:0x000267E8 + .rodata start:0x000005B0 end:0x00000718 + .data start:0x000001E0 end:0x00000490 + .bss start:0x000003C0 end:0x00002C9A + +REL/mgmodedll/datalist.c: + .text start:0x000267E8 end:0x00026C28 + .rodata start:0x00000718 end:0x00000728 + .data start:0x00000490 end:0x000009C0 + +REL/mgmodedll/minigame.c: + .text start:0x00026C28 end:0x00027CF0 + .rodata start:0x00000728 end:0x00000790 + .data start:0x000009C0 end:0x00000A02 diff --git a/config/GMPE01_00/rels/mgmodedll/symbols.txt b/config/GMPE01_00/rels/mgmodedll/symbols.txt index 506d2aa6..a6578bfb 100644 --- a/config/GMPE01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPE01_00/rels/mgmodedll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x3C4 +ModuleProlog = .text:0x000000A0; // type:function size:0x3C4 fn_1_464 = .text:0x00000464; // type:function size:0x294 fn_1_6F8 = .text:0x000006F8; // type:function size:0x6F8 fn_1_DF0 = .text:0x00000DF0; // type:function size:0xD1C @@ -492,7 +492,7 @@ lbl_1_data_19C = .data:0x0000019C; // type:object size:0x10 lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x10 lbl_1_data_1BC = .data:0x000001BC; // type:object size:0xA data:string lbl_1_data_1C6 = .data:0x000001C6; // type:object size:0xE data:string -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x10 +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xB data:string lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 data:string lbl_1_data_208 = .data:0x00000208; // type:object size:0x26 data:string lbl_1_data_22E = .data:0x0000022E; // type:object size:0x27 data:string @@ -530,7 +530,7 @@ lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x2 data:2byte lbl_1_bss_2CE = .bss:0x000002CE; // type:object size:0x2 data:2byte lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x8 data:4byte lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x4 data:4byte -lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x6 +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x4 data:4byte lbl_1_bss_2E2 = .bss:0x000002E2; // type:object size:0x2 data:2byte lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0x2 data:2byte lbl_1_bss_2E6 = .bss:0x000002E6; // type:object size:0x2 data:2byte diff --git a/config/GMPE01_00/rels/mpexDll/splits.txt b/config/GMPE01_00/rels/mpexDll/splits.txt index 531cd645..dec8bfef 100644 --- a/config/GMPE01_00/rels/mpexDll/splits.txt +++ b/config/GMPE01_00/rels/mpexDll/splits.txt @@ -5,3 +5,26 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mpexDll/main.c: + .text start:0x00000000 end:0x00003044 + .rodata start:0x00000000 end:0x000000A0 + .data start:0x00000000 end:0x00000240 + .bss start:0x00000000 end:0x000000A8 + +REL/mpexDll/mpex.c: + .text start:0x00003044 end:0x0001264C + .rodata start:0x000000A0 end:0x00000538 + .data start:0x00000240 end:0x00000518 + .bss start:0x000000A8 end:0x00000440 + +REL/mpexDll/charsel.c: + .text start:0x0001264C end:0x0001CB80 + .rodata start:0x00000538 end:0x00000610 + .data start:0x00000518 end:0x00000788 + .bss start:0x00000440 end:0x000006AD + +REL/mpexDll/mgname.c: + .text start:0x0001CB80 end:0x0001D198 + .rodata start:0x00000610 end:0x00000618 + .data start:0x00000788 end:0x00000788 diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index a3c447db..85a09fc4 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -389,7 +389,8 @@ lbl_1_data_18D = .data:0x0000018D; // type:object size:0x4F data:string lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x22 data:string lbl_1_data_1FE = .data:0x000001FE; // type:object size:0x1A data:string lbl_1_data_218 = .data:0x00000218; // type:object size:0x1A data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0x62 +lbl_1_data_232 = .data:0x00000232; // type:object size:0xE data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 diff --git a/configure.py b/configure.py index 524fcf61..2a5a05e5 100644 --- a/configure.py +++ b/configure.py @@ -697,16 +697,6 @@ config.libs = [ Object(Matching, "musyx/runtime/Chorus/chorus_fx.c"), } ), - { - "lib": "REL", - "mw_version": config.linker_version, - "cflags": cflags_rel, - "host": False, - "objects": [ - Object(Matching, "REL/executor.c"), - Object(Matching, "REL/empty.c"), # Must be marked as matching - ], - }, { "lib": "OdemuExi2", "mw_version": config.linker_version, @@ -758,6 +748,16 @@ config.libs = [ Object(NonMatching, "msm/msmstream.c"), ], }, + { + "lib": "REL", + "mw_version": config.linker_version, + "cflags": cflags_rel, + "host": False, + "objects": [ + Object(Matching, "REL/executor.c"), + Object(Matching, "REL/empty.c"), # Must be marked as matching + ], + }, Rel('_minigameDLL', objects = { Object(Matching, "REL/executor.c"), @@ -810,6 +810,25 @@ config.libs = [ Object(NonMatching, "REL/m404Dll/main.c"), } ), + Rel('mentDll', + objects = { + Object(NonMatching, "REL/mentDll/common.c"), + Object(NonMatching, "REL/mentDll/main.c"), + } + ), + Rel('mgmodedll', + objects = { + Object(Matching, "REL/executor.c"), + Object(NonMatching, "REL/mgmodedll/mgmode.c"), + Object(NonMatching, "REL/mgmodedll/free_play.c"), + Object(NonMatching, "REL/mgmodedll/record.c"), + Object(NonMatching, "REL/mgmodedll/battle.c"), + Object(NonMatching, "REL/mgmodedll/tictactoe.c"), + Object(NonMatching, "REL/mgmodedll/main.c"), + Object(NonMatching, "REL/mgmodedll/datalist.c"), + Object(NonMatching, "REL/mgmodedll/minigame.c"), + } + ), Rel('modeseldll', objects = { Object(Matching, "REL/executor.c"), @@ -819,6 +838,14 @@ config.libs = [ Object(NonMatching, "REL/modeseldll/datalist.c"), } ), + Rel('mpexDll', + objects = { + Object(NonMatching, "REL/mpexDll/main.c"), + Object(NonMatching, "REL/mpexDll/mpex.c"), + Object(NonMatching, "REL/mpexDll/charsel.c"), + Object(NonMatching, "REL/mpexDll/mgname.c"), + } + ), Rel('option', objects = { Object(Matching, "REL/executor.c"),