Split first 3 boards

Also introduce board executor file. Renamed w10dll splits.
This commit is contained in:
gamemasterplc 2023-12-31 10:15:36 -06:00
parent 45f0930c6c
commit 0a62d3a3d7
17 changed files with 199 additions and 34 deletions

View file

@ -5,3 +5,24 @@ Sections:
.rodata type:rodata align:8 .rodata type:rodata align:8
.data type:data align:8 .data type:data align:8
.bss type:bss align:8 .bss type:bss align:8
REL/board_executor.c:
.text start:0x00000000 end:0x000000E0
REL/w01Dll/main.c:
.text start:0x000000E0 end:0x00009D00
.rodata start:0x00000000 end:0x00000198
.data start:0x00000000 end:0x00000658
.bss start:0x00000000 end:0x00000708
REL/w01Dll/mg_coin.c:
.text start:0x00009D00 end:0x0000D740
.rodata start:0x00000198 end:0x000002C8
.data start:0x00000658 end:0x00000F08
.bss start:0x00000708 end:0x000007A0
REL/w01Dll/mg_item.c:
.text start:0x0000D740 end:0x000119F0
.rodata start:0x000002C8 end:0x000003C4
.data start:0x00000F08 end:0x00000FAC
.bss start:0x000007A0 end:0x0000081C

View file

@ -1,8 +1,8 @@
fn_1_0 = .text:0x00000000; // type:function size:0x30 InitBoard = .text:0x00000000; // type:function size:0x30 scope:local
_prolog = .text:0x00000030; // type:function size:0x64 scope:global _prolog = .text:0x00000030; // type:function size:0x64 scope:global
_epilog = .text:0x00000094; // type:function size:0x4C scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global
fn_1_E0 = .text:0x000000E0; // type:function size:0x4BC BoardInit = .text:0x000000E0; // type:function size:0x4BC
fn_1_59C = .text:0x0000059C; // type:function size:0x194 BoardDestroy = .text:0x0000059C; // type:function size:0x194
fn_1_730 = .text:0x00000730; // type:function size:0x44 fn_1_730 = .text:0x00000730; // type:function size:0x44
fn_1_774 = .text:0x00000774; // type:function size:0x4 fn_1_774 = .text:0x00000774; // type:function size:0x4
fn_1_778 = .text:0x00000778; // type:function size:0x9C fn_1_778 = .text:0x00000778; // type:function size:0x9C

View file

@ -5,3 +5,47 @@ Sections:
.rodata type:rodata align:8 .rodata type:rodata align:8
.data type:data align:8 .data type:data align:8
.bss type:bss align:8 .bss type:bss align:8
REL/board_executor.c:
.text start:0x00000000 end:0x000000E0
REL/w02Dll/main.c:
.text start:0x000000E0 end:0x00001254
.rodata start:0x00000000 end:0x00000038
.data start:0x00000000 end:0x000002A8
.bss start:0x00000000 end:0x00000050
REL/w02Dll/dice.c:
.text start:0x00001254 end:0x00002D04
.rodata start:0x00000038 end:0x00000108
.data start:0x000002A8 end:0x00000360
REL/w02Dll/gamble.c:
.text start:0x00002D04 end:0x000039F4
.rodata start:0x00000108 end:0x00000178
.data start:0x00000360 end:0x00000378
.bss start:0x00000050 end:0x00000058
REL/w02Dll/mg_coin.c:
.text start:0x000039F4 end:0x00005CF8
.rodata start:0x00000178 end:0x00000218
.data start:0x00000378 end:0x00000428
.bss start:0x00000058 end:0x000000C8
REL/w02Dll/mg_item.c:
.text start:0x00005CF8 end:0x00009250
.rodata start:0x00000218 end:0x000002F0
.data start:0x00000428 end:0x00000490
.bss start:0x000000C8 end:0x000001A0
REL/w02Dll/shuffleboard.c:
.text start:0x00009250 end:0x0000BC1C
.rodata start:0x000002F0 end:0x00000408
.data start:0x00000490 end:0x000004D0
.bss start:0x000001A0 end:0x00000380
REL/w02Dll/roulette.c:
.text start:0x0000BC1C end:0x0000E4D4
.rodata start:0x00000408 end:0x00000530
.data start:0x000004D0 end:0x00000524
.bss start:0x00000380 end:0x00000390

View file

@ -1,8 +1,8 @@
fn_1_0 = .text:0x00000000; // type:function size:0x30 InitBoard = .text:0x00000000; // type:function size:0x30 scope:local
_prolog = .text:0x00000030; // type:function size:0x64 scope:global _prolog = .text:0x00000030; // type:function size:0x64 scope:global
_epilog = .text:0x00000094; // type:function size:0x4C scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global
fn_1_E0 = .text:0x000000E0; // type:function size:0x4F4 BoardInit = .text:0x000000E0; // type:function size:0x4F4
fn_1_5D4 = .text:0x000005D4; // type:function size:0x158 BoardDestroy = .text:0x000005D4; // type:function size:0x158
fn_1_72C = .text:0x0000072C; // type:function size:0x44 fn_1_72C = .text:0x0000072C; // type:function size:0x44
fn_1_770 = .text:0x00000770; // type:function size:0x4 fn_1_770 = .text:0x00000770; // type:function size:0x4
fn_1_774 = .text:0x00000774; // type:function size:0x8C fn_1_774 = .text:0x00000774; // type:function size:0x8C

View file

@ -5,3 +5,47 @@ Sections:
.rodata type:rodata align:8 .rodata type:rodata align:8
.data type:data align:8 .data type:data align:8
.bss type:bss align:8 .bss type:bss align:8
REL/board_executor.c:
.text start:0x00000000 end:0x000000E0
REL/w03Dll/main.c:
.text start:0x000000E0 end:0x000010E4
.rodata start:0x00000000 end:0x00000030
.data start:0x00000000 end:0x00000280
.bss start:0x00000000 end:0x00000028
REL/w03Dll/statue.c:
.text start:0x000010E4 end:0x00003058
.rodata start:0x00000030 end:0x000000D8
.data start:0x00000280 end:0x00000310
.bss start:0x00000028 end:0x00000070
REL/w03Dll/condor.c:
.text start:0x00003058 end:0x000063F4
.rodata start:0x000000D8 end:0x00000218
.data start:0x00000310 end:0x00000368
.bss start:0x00000070 end:0x00000120
REL/w03Dll/river.c:
.text start:0x000063F4 end:0x0000785C
.rodata start:0x00000218 end:0x000002A8
.data start:0x00000368 end:0x00000410
.bss start:0x00000120 end:0x00000140
REL/w03Dll/smoke.c:
.text start:0x0000785C end:0x00007ABC
.rodata start:0x000002A8 end:0x000002B0
.data start:0x00000410 end:0x00000450
REL/w03Dll/mg_coin.c:
.text start:0x00007ABC end:0x00009A7C
.rodata start:0x000002B0 end:0x00000360
.data start:0x00000450 end:0x000004D8
.bss start:0x00000140 end:0x00000180
REL/w03Dll/mg_item.c:
.text start:0x00009A7C end:0x0000C248
.rodata start:0x00000360 end:0x00000418
.data start:0x000004D8 end:0x0000054C
.bss start:0x00000180 end:0x00000197

View file

@ -1,8 +1,8 @@
fn_1_0 = .text:0x00000000; // type:function size:0x30 InitBoard = .text:0x00000000; // type:function size:0x30 scope:local
_prolog = .text:0x00000030; // type:function size:0x64 scope:global _prolog = .text:0x00000030; // type:function size:0x64 scope:global
_epilog = .text:0x00000094; // type:function size:0x4C scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global
fn_1_E0 = .text:0x000000E0; // type:function size:0x660 BoardInit = .text:0x000000E0; // type:function size:0x660
fn_1_740 = .text:0x00000740; // type:function size:0x144 BoardDestroy = .text:0x00000740; // type:function size:0x144
fn_1_884 = .text:0x00000884; // type:function size:0x6C fn_1_884 = .text:0x00000884; // type:function size:0x6C
fn_1_8F0 = .text:0x000008F0; // type:function size:0x20 fn_1_8F0 = .text:0x000008F0; // type:function size:0x20
fn_1_910 = .text:0x00000910; // type:function size:0x164 fn_1_910 = .text:0x00000910; // type:function size:0x164

View file

@ -6,25 +6,25 @@ Sections:
.data type:data align:8 .data type:data align:8
.bss type:bss align:8 .bss type:bss align:8
REL/w10Dll/w10Dll_init.c: REL/board_executor.c:
.text start:0x00000000 end:0x000000E0 .text start:0x00000000 end:0x000000E0
REL/w10Dll/w10Dll.c: REL/w10Dll/main.c:
.text start:0x000000E0 end:0x00000AEC .text start:0x000000E0 end:0x00000AEC
.rodata start:0x00000000 end:0x00000038 .rodata start:0x00000000 end:0x00000038
.data start:0x00000000 end:0x00000078 .data start:0x00000000 end:0x00000078
.bss start:0x00000000 end:0x00000038 .bss start:0x00000000 end:0x00000038
REL/w10Dll/w10Dll2.c: REL/w10Dll/host.c:
.text start:0x00000AEC end:0x00000D2C .text start:0x00000AEC end:0x00000D2C
.rodata start:0x00000038 end:0x00000048 .rodata start:0x00000038 end:0x00000048
.data start:0x00000078 end:0x00000098 .data start:0x00000078 end:0x00000098
REL/w10Dll/w10Dll3.c: REL/w10Dll/scene.c:
.text start:0x00000D2C end:0x0000176C .text start:0x00000D2C end:0x0000176C
.rodata start:0x00000048 end:0x00000050 .rodata start:0x00000048 end:0x00000050
REL/w10Dll/w10Dll4.c: REL/w10Dll/tutorial.c:
.text start:0x0000176C end:0x0000206C .text start:0x0000176C end:0x0000206C
.rodata start:0x00000050 end:0x00000070 .rodata start:0x00000050 end:0x00000070
.data start:0x00000098 end:0x000002D4 .data start:0x00000098 end:0x000002D4

View file

@ -1,8 +1,8 @@
fn_1_0 = .text:0x00000000; // type:function size:0x30 InitBoard = .text:0x00000000; // type:function size:0x30 scope:local
_prolog = .text:0x00000030; // type:function size:0x64 scope:global _prolog = .text:0x00000030; // type:function size:0x64 scope:global
_epilog = .text:0x00000094; // type:function size:0x4C scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global
fn_1_E0 = .text:0x000000E0; // type:function size:0x5F8 BoardInit = .text:0x000000E0; // type:function size:0x5F8
fn_1_6D8 = .text:0x000006D8; // type:function size:0x1E8 BoardDestroy = .text:0x000006D8; // type:function size:0x1E8
fn_1_8C0 = .text:0x000008C0; // type:function size:0x44 fn_1_8C0 = .text:0x000008C0; // type:function size:0x44
fn_1_904 = .text:0x00000904; // type:function size:0x4 fn_1_904 = .text:0x00000904; // type:function size:0x4
fn_1_908 = .text:0x00000908; // type:function size:0x4 fn_1_908 = .text:0x00000908; // type:function size:0x4

View file

@ -999,7 +999,7 @@ HuRestartSystem = .text:0x8005AE34; // type:function size:0xDC
HuSoftResetCheck = .text:0x8005AF10; // type:function size:0xFC scope:local HuSoftResetCheck = .text:0x8005AF10; // type:function size:0xFC scope:local
HuSoftResetCountCheck = .text:0x8005B00C; // type:function size:0xCC scope:local HuSoftResetCountCheck = .text:0x8005B00C; // type:function size:0xCC scope:local
HuSoftResetPostProc = .text:0x8005B0D8; // type:function size:0x78 scope:local HuSoftResetPostProc = .text:0x8005B0D8; // type:function size:0x78 scope:local
BoardInit = .text:0x8005B150; // type:function size:0x2E0 BoardCommonInit = .text:0x8005B150; // type:function size:0x2E0
InitBoardFunc = .text:0x8005B430; // type:function size:0x64 scope:local InitBoardFunc = .text:0x8005B430; // type:function size:0x64 scope:local
ExecBoardFunc = .text:0x8005B494; // type:function size:0x9C scope:local ExecBoardFunc = .text:0x8005B494; // type:function size:0x9C scope:local
KillBoardFunc = .text:0x8005B530; // type:function size:0xCC scope:local KillBoardFunc = .text:0x8005B530; // type:function size:0xCC scope:local
@ -1063,9 +1063,9 @@ BoardMGExit = .text:0x8005EF8C; // type:function size:0x170
BoardMGKill = .text:0x8005F0FC; // type:function size:0x60 BoardMGKill = .text:0x8005F0FC; // type:function size:0x60
BoardMGExec = .text:0x8005F15C; // type:function size:0xC4 BoardMGExec = .text:0x8005F15C; // type:function size:0xC4
BoardMGCreate = .text:0x8005F220; // type:function size:0x74 BoardMGCreate = .text:0x8005F220; // type:function size:0x74
BoardMGStartFlagSet = .text:0x8005F294; // type:function size:0x28 BoardEventFlagSet = .text:0x8005F294; // type:function size:0x28
BoardMGStartFlagReset = .text:0x8005F2BC; // type:function size:0x28 BoardEventFlagReset = .text:0x8005F2BC; // type:function size:0x28
BoardMGStartFlagGet = .text:0x8005F2E4; // type:function size:0x48 BoardEventFlagGet = .text:0x8005F2E4; // type:function size:0x48
BoardMTXCalcLookAt = .text:0x8005F32C; // type:function size:0x10C BoardMTXCalcLookAt = .text:0x8005F32C; // type:function size:0x10C
BoardArcSin = .text:0x8005F438; // type:function size:0x330 BoardArcSin = .text:0x8005F438; // type:function size:0x330
BoardArcCos = .text:0x8005F768; // type:function size:0x390 BoardArcCos = .text:0x8005F768; // type:function size:0x390

View file

@ -861,13 +861,45 @@ config.libs = [
Object(NonMatching, "REL/subchrselDll/subchrselDll.c"), Object(NonMatching, "REL/subchrselDll/subchrselDll.c"),
} }
), ),
Rel('subchrselDll', Rel('w01Dll',
objects = { objects = {
Object(Matching, "REL/w10Dll/w10Dll_init.c"), Object(Matching, "REL/board_executor.c"),
Object(Matching, "REL/w10Dll/w10Dll.c"), Object(NonMatching, "REL/w01Dll/main.c"),
Object(Matching, "REL/w10Dll/w10Dll2.c"), Object(NonMatching, "REL/w01Dll/mg_coin.c"),
Object(Matching, "REL/w10Dll/w10Dll3.c"), Object(NonMatching, "REL/w01Dll/mg_item.c"),
Object(Matching, "REL/w10Dll/w10Dll4.c"), }
),
Rel('w02Dll',
objects = {
Object(Matching, "REL/board_executor.c"),
Object(NonMatching, "REL/w02Dll/main.c"),
Object(NonMatching, "REL/w02Dll/dice.c"),
Object(NonMatching, "REL/w02Dll/gamble.c"),
Object(NonMatching, "REL/w02Dll/mg_coin.c"),
Object(NonMatching, "REL/w02Dll/mg_item.c"),
Object(NonMatching, "REL/w02Dll/shuffleboard.c"),
Object(NonMatching, "REL/w02Dll/roulette.c"),
}
),
Rel('w03Dll',
objects = {
Object(Matching, "REL/board_executor.c"),
Object(NonMatching, "REL/w03Dll/main.c"),
Object(NonMatching, "REL/w03Dll/statue.c"),
Object(NonMatching, "REL/w03Dll/condor.c"),
Object(NonMatching, "REL/w03Dll/river.c"),
Object(NonMatching, "REL/w03Dll/smoke.c"),
Object(NonMatching, "REL/w03Dll/mg_coin.c"),
Object(NonMatching, "REL/w03Dll/mg_item.c"),
}
),
Rel('w10Dll',
objects = {
Object(Matching, "REL/board_executor.c"),
Object(Matching, "REL/w10Dll/main.c"),
Object(Matching, "REL/w10Dll/host.c"),
Object(Matching, "REL/w10Dll/scene.c"),
Object(Matching, "REL/w10Dll/tutorial.c"),
} }
), ),
] ]

View file

@ -0,0 +1,24 @@
#ifndef REL_BOARD_EXECUTOR_H
#define REL_BOARD_EXECUTOR_H
#ifdef __cplusplus
extern "C" {
#endif
extern int _prolog();
extern void _epilog();
typedef void (*VoidFunc)(void);
extern const VoidFunc _ctors[];
extern const VoidFunc _dtors[];
extern void BoardCommonInit(VoidFunc init, VoidFunc destroy);
extern void BoardInit(void);
extern void BoardDestroy(void);
#ifdef __cplusplus
}
#endif
#endif /* REL_BOARD_EXECUTOR_H */

View file

@ -69,7 +69,7 @@ f32 BoardModelRotYGet(s32);
void BoardModelLayerSet(s16, s32); void BoardModelLayerSet(s16, s32);
void BoardTutorialHostSet(s16); void BoardTutorialHostSet(s16);
s32 BoardModelIDGet(s16); s32 BoardModelIDGet(s16);
void BoardInit(void*, void*); void BoardCommonInit(void*, void*);
void BoardModelScaleSetV(s32, Vec*); void BoardModelScaleSetV(s32, Vec*);
void BoardLightHookSet(void*, void*); void BoardLightHookSet(void*, void*);
s16 BoardModelCreate(s32, void*, s32); s16 BoardModelCreate(s32, void*, s32);

View file

@ -1,7 +1,7 @@
#include "include/REL/w10Dll.h" #include "REL/board_executor.h"
void fn_1_0(void) { static void InitBoard(void) {
BoardInit(&fn_1_E0, &fn_1_6D8); BoardCommonInit(BoardInit, BoardDestroy);
} }
int _prolog(void) { int _prolog(void) {
@ -10,7 +10,7 @@ int _prolog(void) {
(**ctors)(); (**ctors)();
ctors++; ctors++;
} }
fn_1_0(); InitBoard();
return 0; return 0;
} }

View file

@ -65,7 +65,7 @@ inline s32 get_current_board(void) {
return GWSystem.board; return GWSystem.board;
} }
void fn_1_E0(void) { void BoardInit(void) {
f32 sp10; f32 sp10;
f32 spC[2]; f32 spC[2];
s32 sp8; s32 sp8;
@ -138,7 +138,7 @@ void fn_1_E0(void) {
HuWinMesPalSet(lbl_1_bss_E, 7, 0, 0, 0); HuWinMesPalSet(lbl_1_bss_E, 7, 0, 0, 0);
} }
void fn_1_6D8(void) { void BoardDestroy(void) {
s32 i; s32 i;
for (i = 0; i < 1; i++) { for (i = 0; i < 1; i++) {
if (lbl_1_bss_10[i] != 0) { if (lbl_1_bss_10[i] != 0) {