This commit is contained in:
CreateSource 2023-12-31 20:29:10 -05:00
commit 4c89172e9b
67 changed files with 3379 additions and 1398 deletions

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "extern/musyx"]
path = extern/musyx
url = https://github.com/AxioDL/musyx

View file

@ -6,5 +6,17 @@ Sections:
.data type:data align:8
.bss type:bss align:8
REL/E3setupDLL/mgselect.c:
.text start:0x00000000 end:0x0000133C
.rodata start:0x00000000 end:0x00000088
.data start:0x00000000 end:0x00000250
.bss start:0x00000000 end:0x00000028
REL/executor.c:
.text start:0x0000133C end:0x000013DC
REL/E3setupDLL/main.c:
.text start:0x000013DC end:0x00005850
.rodata start:0x00000088 end:0x00000130
.data start:0x00000250 end:0x000004D0
.bss start:0x00000028 end:0x000000F8

View file

@ -1,45 +1,45 @@
fn_2_0 = .text:0x00000000; // type:function size:0x324
fn_2_324 = .text:0x00000324; // type:function size:0x9C
fn_2_3C0 = .text:0x000003C0; // type:function size:0xA0
fn_2_460 = .text:0x00000460; // type:function size:0x584
fn_2_9E4 = .text:0x000009E4; // type:function size:0x528
fn_2_F0C = .text:0x00000F0C; // type:function size:0x80
fn_2_F8C = .text:0x00000F8C; // type:function size:0x1AC
fn_2_1138 = .text:0x00001138; // type:function size:0x14
fn_2_114C = .text:0x0000114C; // type:function size:0x1F0
E3MGSelectInit = .text:0x00000000; // type:function size:0x324
StartMGSelect = .text:0x00000324; // type:function size:0x9C scope:local
UpdatePad = .text:0x000003C0; // type:function size:0xA0 scope:local
UpdateMGSelect = .text:0x00000460; // type:function size:0x584 scope:local
CreateMGSelect = .text:0x000009E4; // type:function size:0x528 scope:local
UpdateMGPic = .text:0x00000F0C; // type:function size:0x80 scope:local
CreateMGPic = .text:0x00000F8C; // type:function size:0x1AC scope:local
UpdateMGInterface = .text:0x00001138; // type:function size:0x14 scope:local
CreateMGInterface = .text:0x0000114C; // type:function size:0x1F0 scope:local
_prolog = .text:0x0000133C; // type:function size:0x54 scope:global
_epilog = .text:0x00001390; // type:function size:0x4C scope:global
ModuleProlog = .text:0x000013DC; // type:function size:0x108
fn_2_14E4 = .text:0x000014E4; // type:function size:0x514
fn_2_19F8 = .text:0x000019F8; // type:function size:0x1AC
fn_2_1BA4 = .text:0x00001BA4; // type:function size:0x7C
fn_2_1C20 = .text:0x00001C20; // type:function size:0x84
fn_2_1CA4 = .text:0x00001CA4; // type:function size:0x90
fn_2_1D34 = .text:0x00001D34; // type:function size:0x24
fn_2_1D58 = .text:0x00001D58; // type:function size:0xFC
fn_2_1E54 = .text:0x00001E54; // type:function size:0x1C0
fn_2_2014 = .text:0x00002014; // type:function size:0x78
fn_2_208C = .text:0x0000208C; // type:function size:0x2C
fn_2_20B8 = .text:0x000020B8; // type:function size:0xA4
fn_2_215C = .text:0x0000215C; // type:function size:0x400
fn_2_255C = .text:0x0000255C; // type:function size:0x124
fn_2_2680 = .text:0x00002680; // type:function size:0x74
fn_2_26F4 = .text:0x000026F4; // type:function size:0x344
fn_2_2A38 = .text:0x00002A38; // type:function size:0x59C
fn_2_2FD4 = .text:0x00002FD4; // type:function size:0x208
fn_2_31DC = .text:0x000031DC; // type:function size:0x37C
fn_2_3558 = .text:0x00003558; // type:function size:0x3B4
fn_2_390C = .text:0x0000390C; // type:function size:0xAC
fn_2_39B8 = .text:0x000039B8; // type:function size:0x2B8
fn_2_3C70 = .text:0x00003C70; // type:function size:0x534
fn_2_41A4 = .text:0x000041A4; // type:function size:0x2DC
fn_2_4480 = .text:0x00004480; // type:function size:0x520
fn_2_49A0 = .text:0x000049A0; // type:function size:0x59C
fn_2_4F3C = .text:0x00004F3C; // type:function size:0x4E8
fn_2_5424 = .text:0x00005424; // type:function size:0x100
fn_2_5524 = .text:0x00005524; // type:function size:0x184
fn_2_56A8 = .text:0x000056A8; // type:function size:0x7C
fn_2_5724 = .text:0x00005724; // type:function size:0x12C
E3MainInit = .text:0x000014E4; // type:function size:0x514
E3LightInit = .text:0x000019F8; // type:function size:0x1AC
GetStickX = .text:0x00001BA4; // type:function size:0x7C scope:local
GetStickY = .text:0x00001C20; // type:function size:0x84 scope:local
GetBtn = .text:0x00001CA4; // type:function size:0x90 scope:local
GetBtnDown = .text:0x00001D34; // type:function size:0x24 scope:local
E3PadUpdate = .text:0x00001D58; // type:function size:0xFC
E3PadInit = .text:0x00001E54; // type:function size:0x1C0
MotionGetMaxTime = .text:0x00002014; // type:function size:0x78
MotionGetShiftTime = .text:0x0000208C; // type:function size:0x2C
InitMenuControl = .text:0x000020B8; // type:function size:0xA4 scope:local
UpdateMenuControl = .text:0x0000215C; // type:function size:0x400 scope:local
UpdateOvlWatch = .text:0x0000255C; // type:function size:0x124 scope:local
E3OvlWatchInit = .text:0x00002680; // type:function size:0x74
UpdatePlayerCnt = .text:0x000026F4; // type:function size:0x344 scope:local
InitPlayerCnt = .text:0x00002A38; // type:function size:0x59C scope:local
UpdateCharSelCursor = .text:0x00002FD4; // type:function size:0x208 scope:local
UpdateCharSelPlayerCursor = .text:0x000031DC; // type:function size:0x37C scope:local
UpdateCharSelComCursor = .text:0x00003558; // type:function size:0x3B4 scope:local
IsCharSelDone = .text:0x0000390C; // type:function size:0xAC scope:local
UpdateCharSel = .text:0x000039B8; // type:function size:0x2B8 scope:local
InitCharSel = .text:0x00003C70; // type:function size:0x534 scope:local
UpdateVibrateCfg = .text:0x000041A4; // type:function size:0x2DC scope:local
InitVibrateCfg = .text:0x00004480; // type:function size:0x520 scope:local
UpdateGameModeSel = .text:0x000049A0; // type:function size:0x59C scope:local
InitGameModeSel = .text:0x00004F3C; // type:function size:0x4E8 scope:local
E3BGUpdate = .text:0x00005424; // type:function size:0x100 scope:local
E3BGCreate = .text:0x00005524; // type:function size:0x184
InitCamera = .text:0x000056A8; // type:function size:0x7C scope:local
UpdateCamera = .text:0x00005724; // type:function size:0x12C scope:local
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
@ -112,10 +112,12 @@ lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float
lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float
lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float
lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float
lbl_2_data_24 = .data:0x00000024; // type:object size:0x1A
lbl_2_data_3E = .data:0x0000003E; // type:object size:0x1A
lbl_2_data_58 = .data:0x00000058; // type:object size:0x1C
lbl_2_data_74 = .data:0x00000074; // type:object size:0x34
lbl_2_data_0 = .data:0x00000000; // type:object size:0x24
lbl_2_data_24 = .data:0x00000024; // type:object size:0x11 data:string
lbl_2_data_36 = .data:0x00000036; // type:object size:0x8
mgOvlTbl = .data:0x0000003E; // type:object size:0x1A scope:local
mgIdTbl = .data:0x00000058; // type:object size:0x1C scope:local
mgNameTbl = .data:0x00000074; // type:object size:0x34 scope:local
lbl_2_data_A8 = .data:0x000000A8; // type:object size:0x21
lbl_2_data_C9 = .data:0x000000C9; // type:object size:0x16
lbl_2_data_DF = .data:0x000000DF; // type:object size:0x16
@ -128,41 +130,46 @@ lbl_2_data_151 = .data:0x00000151; // type:object size:0x16
lbl_2_data_167 = .data:0x00000167; // type:object size:0x16
lbl_2_data_17D = .data:0x0000017D; // type:object size:0x16
lbl_2_data_193 = .data:0x00000193; // type:object size:0x16
lbl_2_data_1A9 = .data:0x000001A9; // type:object size:0x4B
lbl_2_data_1F4 = .data:0x000001F4; // type:object size:0x14
lbl_2_data_208 = .data:0x00000208; // type:object size:0x34
lbl_2_data_23C = .data:0x0000023C; // type:object size:0x14
lbl_2_data_250 = .data:0x00000250; // type:object size:0xC
lbl_2_data_25C = .data:0x0000025C; // type:object size:0xC
lbl_2_data_268 = .data:0x00000268; // type:object size:0x6C
lbl_2_data_2D4 = .data:0x000002D4; // type:object size:0x8
lbl_2_data_2DC = .data:0x000002DC; // type:object size:0x10
lbl_2_data_2EC = .data:0x000002EC; // type:object size:0x20
lbl_2_data_30C = .data:0x0000030C; // type:object size:0x1C
lbl_2_data_328 = .data:0x00000328; // type:object size:0x10
lbl_2_data_338 = .data:0x00000338; // type:object size:0x40
lbl_2_data_378 = .data:0x00000378; // type:object size:0x20
lbl_2_data_398 = .data:0x00000398; // type:object size:0x10
lbl_2_data_3A8 = .data:0x000003A8; // type:object size:0x20
lbl_2_data_3C8 = .data:0x000003C8; // type:object size:0x14
lbl_2_data_3DC = .data:0x000003DC; // type:object size:0x14
lbl_2_data_3F0 = .data:0x000003F0; // type:object size:0x8
lbl_2_data_3F8 = .data:0x000003F8; // type:object size:0x10
lbl_2_data_408 = .data:0x00000408; // type:object size:0x10
lbl_2_data_418 = .data:0x00000418; // type:object size:0x60
lbl_2_data_1A9 = .data:0x000001A9; // type:object size:0x17
mgNameTestTbl = .data:0x000001C0; // type:object size:0x34 scope:local
cursorYOfsTbl = .data:0x000001F4; // type:object size:0x14 scope:local
mgPicTbl = .data:0x00000208; // type:object size:0x34 scope:local
startText = .data:0x0000023C; // type:object size:0x14 scope:local
shadowPos = .data:0x00000250; // type:object size:0xC scope:local
shadowUp = .data:0x0000025C; // type:object size:0xC scope:local
shadowTarget = .data:0x00000268; // type:object size:0xC scope:local
lbl_2_data_274 = .data:0x00000274; // type:object size:0x60
playerCntTbl = .data:0x000002D4; // type:object size:0x8 scope:local
charTbl = .data:0x000002DC; // type:object size:0x10 scope:local
charSfxTbl = .data:0x000002EC; // type:object size:0x20 scope:local
lbl_2_data_30C = .data:0x0000030C; // type:object size:0x12
lbl_2_data_31E = .data:0x0000031E; // type:object size:0x8
playerCntMessTbl = .data:0x00000328; // type:object size:0x10 scope:local
charPosTbl = .data:0x00000338; // type:object size:0x40 scope:local
charComSfxTbl = .data:0x00000378; // type:object size:0x20
lbl_2_data_398 = .data:0x00000398; // type:object size:0xE data:string
charSpriteTbl = .data:0x000003A8; // type:object size:0x20 scope:local
cursorSpriteTbl = .data:0x000003C8; // type:object size:0x14 scope:local
highlightSpriteTbl = .data:0x000003DC; // type:object size:0x14 scope:local
vibrateSettingMess = .data:0x000003F0; // type:object size:0x8 scope:local
modeSelCursorPosTbl = .data:0x000003F8; // type:object size:0x10 scope:local
boardSelCursorPosTbl = .data:0x00000408; // type:object size:0x10 scope:local
camRotTbl = .data:0x00000418; // type:object size:0x60 scope:local
lbl_2_data_478 = .data:0x00000478; // type:object size:0x24
lbl_2_data_49C = .data:0x0000049C; // type:object size:0x34
lbl_2_data_49C = .data:0x0000049C; // type:object size:0x24
lbl_2_data_4C0 = .data:0x000004C0; // type:object size:0x10
lbl_2_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte
lbl_2_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte
lbl_2_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte
lbl_2_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte
lbl_2_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte
lbl_2_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte
lbl_2_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte
lbl_2_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte
mgPicObj = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte
mgSelectObj = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte
mgInterface = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte
mgDefault = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte
lbl_2_bss_28 = .bss:0x00000028; // type:object size:0xC data:2byte
lbl_2_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte
lbl_2_bss_34 = .bss:0x00000034; // type:object size:0x2 scope:local data:2byte
lbl_2_bss_36 = .bss:0x00000036; // type:object size:0x2 data:2byte
lbl_2_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte
lbl_2_bss_3A = .bss:0x0000003A; // type:object size:0x2 data:2byte
lbl_2_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte
lbl_2_bss_40 = .bss:0x00000040; // type:object size:0x2 data:2byte
@ -171,22 +178,24 @@ lbl_2_bss_48 = .bss:0x00000048; // type:object size:0xC data:float
lbl_2_bss_54 = .bss:0x00000054; // type:object size:0xC data:float
lbl_2_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte
lbl_2_bss_62 = .bss:0x00000062; // type:object size:0x8
lbl_2_bss_6A = .bss:0x0000006A; // type:object size:0x6 data:2byte
lbl_2_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte
lbl_2_bss_74 = .bss:0x00000074; // type:object size:0x18 data:4byte
lbl_2_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte
lightE3 = .bss:0x0000006A; // type:object size:0x2 scope:local data:2byte
lbl_2_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:2byte
e3BGObj = .bss:0x00000070; // type:object size:0x4 data:4byte
configModeObj = .bss:0x00000074; // type:object size:0x10 scope:local data:4byte
lbl_2_bss_84 = .bss:0x00000084; // type:object size:0x8 data:4byte
cameraObj = .bss:0x0000008C; // type:object size:0x4 scope:local data:4byte
lbl_2_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte
lbl_2_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte
lbl_2_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte
lbl_2_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:float
lbl_2_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte
lbl_2_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte
lbl_2_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte
lbl_2_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte
e3ViewObj = .bss:0x00000094; // type:object size:0x4 data:4byte
e3MenuMainObj = .bss:0x00000098; // type:object size:0x4 data:4byte
e3CameraFov = .bss:0x0000009C; // type:object size:0x4 data:float
needCharKill = .bss:0x000000A0; // type:object size:0x4 scope:local data:4byte
e3ExitMode = .bss:0x000000A4; // type:object size:0x4 data:4byte
e3NextEvent = .bss:0x000000A8; // type:object size:0x4 data:4byte
e3NextOvl = .bss:0x000000AC; // type:object size:0x4 data:4byte
lbl_2_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte
lbl_2_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte
lbl_2_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte
lbl_2_bss_BC = .bss:0x000000BC; // type:object size:0x2 data:2byte
lbl_2_bss_BE = .bss:0x000000BE; // type:object size:0x2 data:2byte
lbl_2_bss_C0 = .bss:0x000000C0; // type:object size:0x20
lbl_2_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:2byte
e3ExitEnableF = .bss:0x000000B4; // type:object size:0x4 data:4byte
e3EvtNo = .bss:0x000000B8; // type:object size:0x4 scope:local data:4byte
e3ConfigPlayerF = .bss:0x000000BC; // type:object size:0x2 data:2byte
e3PadCtrl = .bss:0x000000BE; // type:object size:0x2 data:2byte
e3PadData = .bss:0x000000C0; // type:object size:0x20
configE3 = .bss:0x000000E0; // type:object size:0x18 scope:local data:2byte

View file

@ -5,3 +5,17 @@ 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/instDll/main.c:
.text start:0x000000A0 end:0x00005EA4
.rodata start:0x00000000 end:0x00000210
.data start:0x00000000 end:0x00000150
.bss start:0x00000000 end:0x00000064
REL/instDll/font.c:
.text start:0x00005EA4 end:0x0000635C
.rodata start:0x00000210 end:0x00000218
.data start:0x00000150 end:0x00000468

View file

@ -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:0x8F4
ModuleProlog = .text:0x000000A0; // type:function size:0x8F4
fn_1_994 = .text:0x00000994; // type:function size:0xE50
fn_1_17E4 = .text:0x000017E4; // type:function size:0xA28
fn_1_220C = .text:0x0000220C; // type:function size:0x5F8

View file

@ -5,3 +5,18 @@ 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/m401Dll/main.c:
.text start:0x000000A0 end:0x00010240
.rodata start:0x00000000 end:0x00000450
.data start:0x00000000 end:0x00000478
.bss start:0x00000000 end:0x00000120
REL/m401Dll/main_ex.c:
.text start:0x00010240 end:0x00014E14
.rodata start:0x00000450 end:0x000005E8
.data start:0x00000478 end:0x00000498
.bss start:0x00000120 end:0x00000254

View file

@ -1,6 +1,6 @@
_prolog = .text:0x00000000; // type:function size:0x54 scope:global
_epilog = .text:0x00000054; // type:function size:0x4C scope:global
fn_2_A0 = .text:0x000000A0; // type:function size:0x66C
ModuleProlog = .text:0x000000A0; // type:function size:0x66C
fn_2_70C = .text:0x0000070C; // type:function size:0x304
fn_2_A10 = .text:0x00000A10; // type:function size:0x88
fn_2_A98 = .text:0x00000A98; // type:function size:0x54

View file

@ -5,3 +5,9 @@ Sections:
.rodata type:rodata align:8
.data type:data align:8
.bss type:bss align:8
REL/m402Dll/main.c:
.text start:0x00000000 end:0x00009BC4
.rodata start:0x00000000 end:0x0000018C
.data start:0x00000000 end:0x000004C6
.bss start:0x00000000 end:0x00000210

View file

@ -5,3 +5,18 @@ 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/m403Dll/main.c:
.text start:0x000000A0 end:0x0000650C
.rodata start:0x00000000 end:0x000001A8
.data start:0x00000000 end:0x00000158
.bss start:0x00000000 end:0x00000058
REL/m403Dll/scene.c:
.text start:0x0000650C end:0x00008F6C
.rodata start:0x000001A8 end:0x00000250
.data start:0x00000158 end:0x00000BBC
.bss start:0x00000058 end:0x000000B8

View file

@ -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:0x384
ModuleProlog = .text:0x000000A0; // type:function size:0x384
fn_1_424 = .text:0x00000424; // type:function size:0x20
fn_1_444 = .text:0x00000444; // type:function size:0x3E8
fn_1_82C = .text:0x0000082C; // type:function size:0x9E8

View file

@ -5,3 +5,12 @@ 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/m404Dll/main.c:
.text start:0x000000A0 end:0x00006C88
.rodata start:0x00000000 end:0x00000140
.data start:0x00000000 end:0x00000A0C
.bss start:0x00000000 end:0x0000005C

View file

@ -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:0x2DC
ModuleProlog = .text:0x000000A0; // type:function size:0x2DC
fn_1_37C = .text:0x0000037C; // type:function size:0x10
fn_1_38C = .text:0x0000038C; // type:function size:0x10
fn_1_39C = .text:0x0000039C; // type:function size:0x64

View file

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

View file

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

View file

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

View file

@ -5,3 +5,29 @@ 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/modeseldll/main.c:
.text start:0x000000A0 end:0x00002490
.rodata start:0x00000000 end:0x000000B8
.data start:0x00000000 end:0x00000080
.bss start:0x00000000 end:0x00000080
REL/modeseldll/modesel.c:
.text start:0x00002490 end:0x000037DC
.rodata start:0x000000B8 end:0x000001B0
.data start:0x00000080 end:0x00000100
.bss start:0x00000080 end:0x00000088
REL/modeseldll/filesel.c:
.text start:0x000037DC end:0x0000BED8
.rodata start:0x000001B0 end:0x00000318
.data start:0x00000100 end:0x00000428
.bss start:0x00000088 end:0x000001CA
REL/modeseldll/datalist.c:
.text start:0x0000BED8 end:0x0000C334
.rodata start:0x00000318 end:0x00000328
.data start:0x00000428 end:0x00000A2C

View file

@ -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:0x374
ModuleProlog = .text:0x000000A0; // type:function size:0x374
fn_1_414 = .text:0x00000414; // type:function size:0x5E0
fn_1_9F4 = .text:0x000009F4; // type:function size:0xFC
fn_1_AF0 = .text:0x00000AF0; // type:function size:0x9C
@ -234,7 +234,7 @@ lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x8 data:4byte
lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte
lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte
lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x2 data:2byte
lbl_1_bss_82 = .bss:0x00000082; // type:object size:0x6 data:2byte
lbl_1_bss_82 = .bss:0x00000082; // type:object size:0x2 data:2byte
lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x2 data:2byte
lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:float
lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x2 data:2byte

View file

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

View file

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

View file

@ -5,3 +5,57 @@ 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/option/scene.c:
.text start:0x000000A0 end:0x000007F8
.rodata start:0x00000000 end:0x00000028
.bss start:0x00000000 end:0x00000010
REL/option/camera.c:
.text start:0x000007F8 end:0x000015A4
.rodata start:0x00000028 end:0x000000A8
.data start:0x00000000 end:0x00000068
.bss start:0x00000010 end:0x00000018
REL/option/room.c:
.text start:0x000015A4 end:0x000021F8
.rodata start:0x000000A8 end:0x000000E0
.data start:0x00000068 end:0x00000098
.bss start:0x00000018 end:0x00000020
REL/option/guide.c:
.text start:0x000021F8 end:0x00002E04
.rodata start:0x000000E0 end:0x00000160
.data start:0x00000098 end:0x000000A0
.bss start:0x00000020 end:0x00000028
REL/option/state.c:
.text start:0x00002E04 end:0x00003158
.rodata start:0x00000160 end:0x00000170
.data start:0x000000A0 end:0x00000108
.bss start:0x00000028 end:0x00000030
REL/option/rumble.c:
.text start:0x00003158 end:0x00004028
.rodata start:0x00000170 end:0x000001A8
.data start:0x00000108 end:0x00000118
.bss start:0x00000030 end:0x00000038
REL/option/sound.c:
.text start:0x00004028 end:0x000080E4
.rodata start:0x000001A8 end:0x000013C0
.data start:0x00000118 end:0x00000210
.bss start:0x00000038 end:0x00000040
REL/option/record.c:
.text start:0x000080E4 end:0x0000A3B0
.rodata start:0x000013C0 end:0x000019D0
.data start:0x00000210 end:0x00000254
.bss start:0x00000040 end:0x00000044
REL/option/window.c:
.text start:0x0000A3B0 end:0x0000A9AC
.rodata start:0x000019D0 end:0x000019F0

View file

@ -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:0xC0
ModuleProlog = .text:0x000000A0; // type:function size:0xC0
fn_1_160 = .text:0x00000160; // type:function size:0x110
fn_1_270 = .text:0x00000270; // type:function size:0xE4
fn_1_354 = .text:0x00000354; // type:function size:0x114

View file

@ -5,3 +5,32 @@ 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/present/init.c:
.text start:0x000000A0 end:0x00000920
.rodata start:0x00000000 end:0x00000020
.bss start:0x00000000 end:0x00000020
REL/present/camera.c:
.text start:0x00000920 end:0x00001458
.rodata start:0x00000020 end:0x000000A0
.data start:0x00000000 end:0x00000050
REL/present/present.c:
.text start:0x00001458 end:0x000039A8
.rodata start:0x000000A0 end:0x00000BB0
.data start:0x00000050 end:0x000000F0
REL/present/main.c:
.text start:0x000039A8 end:0x000042F4
.rodata start:0x00000BB0 end:0x00000BD8
.data start:0x000000F0 end:0x000001A0
.bss start:0x00000020 end:0x00000024
REL/present/common.c:
.text start:0x000042F4 end:0x00004DF0
.rodata start:0x00000BD8 end:0x00000C50
.data start:0x000001A0 end:0x000001AC

View file

@ -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:0xA4
ModuleProlog = .text:0x000000A0; // type:function size:0xA4
fn_1_144 = .text:0x00000144; // type:function size:0x110
fn_1_254 = .text:0x00000254; // type:function size:0xE0
fn_1_334 = .text:0x00000334; // type:function size:0x128

View file

@ -5,3 +5,12 @@ 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/selmenuDll/selmenuDll.c:
.text start:0x000000A0 end:0x00005198
.rodata start:0x00000000 end:0x00000084
.data start:0x00000000 end:0x00000B3F
.bss start:0x00000000 end:0x00000098

View file

@ -1,28 +1,28 @@
_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:0x4B8
fn_1_558 = .text:0x00000558; // type:function size:0x60
fn_1_5B8 = .text:0x000005B8; // type:function size:0x324
fn_1_8DC = .text:0x000008DC; // type:function size:0x170
fn_1_A4C = .text:0x00000A4C; // type:function size:0x180
fn_1_BCC = .text:0x00000BCC; // type:function size:0x88
fn_1_C54 = .text:0x00000C54; // type:function size:0x474
fn_1_10C8 = .text:0x000010C8; // type:function size:0xA78
fn_1_1B40 = .text:0x00001B40; // type:function size:0x334
fn_1_1E74 = .text:0x00001E74; // type:function size:0x110
fn_1_1F84 = .text:0x00001F84; // type:function size:0x50
ModuleProlog = .text:0x000000A0; // type:function size:0x4B8
CopyPlayerCfg = .text:0x00000558; // type:function size:0x60 scope:local
CalcBtns = .text:0x000005B8; // type:function size:0x324 scope:local
DrawPage = .text:0x000008DC; // type:function size:0x170 scope:local
MoveChar = .text:0x00000A4C; // type:function size:0x180 scope:local
MoveCursor = .text:0x00000BCC; // type:function size:0x88 scope:local
SMInit = .text:0x00000C54; // type:function size:0x474 scope:local
SMUpdate = .text:0x000010C8; // type:function size:0xA78 scope:local
SMCfgUpdate = .text:0x00001B40; // type:function size:0x334 scope:local
SMComCharGet = .text:0x00001E74; // type:function size:0x110 scope:local
SMCharKill = .text:0x00001F84; // type:function size:0x50 scope:local
fn_1_1FD4 = .text:0x00001FD4; // type:function size:0x10C
fn_1_20E0 = .text:0x000020E0; // type:function size:0x1F8
fn_1_22D8 = .text:0x000022D8; // type:function size:0xD6C
fn_1_3044 = .text:0x00003044; // type:function size:0x2FC
fn_1_3340 = .text:0x00003340; // type:function size:0x804
fn_1_3B44 = .text:0x00003B44; // type:function size:0x40
fn_1_3B84 = .text:0x00003B84; // type:function size:0x968
fn_1_44EC = .text:0x000044EC; // type:function size:0x20
SMCharInit = .text:0x000020E0; // type:function size:0x1F8 scope:local
SMCharUpdate = .text:0x000022D8; // type:function size:0xD6C scope:local
SMExit = .text:0x00003044; // type:function size:0x2FC scope:local
SMPlayerCfgDraw = .text:0x00003340; // type:function size:0x804 scope:local
SMPlayerCfgInit = .text:0x00003B44; // type:function size:0x40 scope:local
SMPlayerCfgUpdate = .text:0x00003B84; // type:function size:0x968 scope:local
SMRand8Tick = .text:0x000044EC; // type:function size:0x20 scope:local
fn_1_450C = .text:0x0000450C; // type:function size:0x4
fn_1_4510 = .text:0x00004510; // type:function size:0x64
fn_1_4574 = .text:0x00004574; // type:function size:0x854
fn_1_4DC8 = .text:0x00004DC8; // type:function size:0x3D0
SMSound3DInit = .text:0x00004510; // type:function size:0x64 scope:local
SMSound3DUpdate = .text:0x00004574; // type:function size:0x854 scope:local
SMSound3DDraw = .text:0x00004DC8; // type:function size:0x3D0 scope:local
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
@ -56,7 +56,7 @@ lbl_1_data_18 = .data:0x00000018; // type:object size:0x6 data:string
lbl_1_data_1E = .data:0x0000001E; // type:object size:0x7 data:string
lbl_1_data_25 = .data:0x00000025; // type:object size:0x6 data:string
lbl_1_data_2B = .data:0x0000002B; // type:object size:0x9
lbl_1_data_34 = .data:0x00000034; // type:object size:0x20
charTbl = .data:0x00000034; // type:object size:0x20 scope:local
lbl_1_data_54 = .data:0x00000054; // type:object size:0x14 data:string
lbl_1_data_68 = .data:0x00000068; // type:object size:0x16 data:string
lbl_1_data_7E = .data:0x0000007E; // type:object size:0x11 data:string
@ -127,8 +127,8 @@ lbl_1_data_4B6 = .data:0x000004B6; // type:object size:0xE data:string
lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xE data:string
lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0xA data:string
lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x10
lbl_1_data_4EC = .data:0x000004EC; // type:object size:0x348
lbl_1_data_834 = .data:0x00000834; // type:object size:0x28
menuTbl = .data:0x000004EC; // type:object size:0x348 scope:local
lbl_1_data_844 = .data:0x00000834; // type:object size:0x18
lbl_1_data_85C = .data:0x0000085C; // type:object size:0x12 data:string
lbl_1_data_86E = .data:0x0000086E; // type:object size:0x12 data:string
lbl_1_data_880 = .data:0x00000880; // type:object size:0x12 data:string
@ -136,18 +136,19 @@ lbl_1_data_892 = .data:0x00000892; // type:object size:0x12 data:string
lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x12 data:string
lbl_1_data_8B6 = .data:0x000008B6; // type:object size:0x12 data:string
lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x11 data:string
lbl_1_data_8D9 = .data:0x000008D9; // type:object size:0x23
lbl_1_data_8FC = .data:0x000008FC; // type:object size:0x2 data:2byte
lbl_1_data_8FE = .data:0x000008FE; // type:object size:0x8
lbl_1_data_8D9 = .data:0x000008D9; // type:object size:0x3
sndTable = .data:0x000008DC; // type:object size:0x20 scope:local
cursorPosBackup = .data:0x000008FC; // type:object size:0x2 data:2byte
btnPrev = .data:0x000008FE; // type:object size:0x8 scope:local
lbl_1_data_906 = .data:0x00000906; // type:object size:0x12
lbl_1_data_918 = .data:0x00000918; // type:object size:0x4 data:4byte
funcNameStr = .data:0x00000918; // type:object size:0x4 scope:local data:4byte
lbl_1_data_91C = .data:0x0000091C; // type:object size:0x12 data:string
lbl_1_data_92E = .data:0x0000092E; // type:object size:0x24 data:string
lbl_1_data_952 = .data:0x00000952; // type:object size:0xB data:string
lbl_1_data_95D = .data:0x0000095D; // type:object size:0x3 data:string
lbl_1_data_960 = .data:0x00000960; // type:object size:0x10
lbl_1_data_970 = .data:0x00000970; // type:object size:0x20
lbl_1_data_990 = .data:0x00000990; // type:object size:0x20
charMdlTbl = .data:0x00000970; // type:object size:0x20 scope:local
charMdlAnimTbl = .data:0x00000990; // type:object size:0x20 scope:local
lbl_1_data_9B0 = .data:0x000009B0; // type:object size:0xD data:string
lbl_1_data_9BD = .data:0x000009BD; // type:object size:0x5
lbl_1_data_9C2 = .data:0x000009C2; // type:object size:0x5
@ -158,7 +159,7 @@ lbl_1_data_9E0 = .data:0x000009E0; // type:object size:0xA data:string
lbl_1_data_9EA = .data:0x000009EA; // type:object size:0x9 data:string
lbl_1_data_9F3 = .data:0x000009F3; // type:object size:0x9 data:string
lbl_1_data_9FC = .data:0x000009FC; // type:object size:0xC
lbl_1_data_A08 = .data:0x00000A08; // type:object size:0x14 data:4byte
padCfgStrTbl = .data:0x00000A08; // type:object size:0x14 scope:local data:4byte
lbl_1_data_A1C = .data:0x00000A1C; // type:object size:0x6 data:string
lbl_1_data_A22 = .data:0x00000A22; // type:object size:0x4 data:string
lbl_1_data_A26 = .data:0x00000A26; // type:object size:0x5 data:string
@ -178,24 +179,24 @@ lbl_1_data_AEC = .data:0x00000AEC; // type:object size:0x15 data:string
lbl_1_data_B01 = .data:0x00000B01; // type:object size:0x15 data:string
lbl_1_data_B16 = .data:0x00000B16; // type:object size:0x15 data:string
lbl_1_data_B2B = .data:0x00000B2B; // type:object size:0x14 data:string
lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte
lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte
lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte
lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte
lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x10
lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x8
lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x10
lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8
lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x8
lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x8
lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0x2 data:2byte
lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte
lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte
lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x2 data:2byte
lbl_1_bss_56 = .bss:0x00000056; // type:object size:0x2A data:2byte
lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte
lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte
lbl_1_bss_88 = .bss:0x00000088; // type:object size:0xE
lbl_1_bss_96 = .bss:0x00000096; // type:object size:0x2 data:2byte
sound3DCursorPos = .bss:0x00000002; // type:object size:0x2 scope:local data:2byte
emiCompVal = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte
emiCompDataNo = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte
playerCfgField = .bss:0x00000008; // type:object size:0x2 scope:local data:2byte
playerCfgPos = .bss:0x0000000A; // type:object size:0x2 scope:local data:2byte
playerCfgSelF = .bss:0x0000000C; // type:object size:0x2 scope:local data:2byte
charSelDisallowF = .bss:0x0000000E; // type:object size:0x10 scope:local
playerCharSelF = .bss:0x0000001E; // type:object size:0x8 scope:local
charModelID = .bss:0x00000026; // type:object size:0x10 scope:local
bntReleaseAll = .bss:0x00000036; // type:object size:0x8 scope:local
btnAll = .bss:0x0000003E; // type:object size:0x8 scope:local
btnDownAll = .bss:0x00000046; // type:object size:0x8 scope:local
btnReleaseCurr = .bss:0x0000004E; // type:object size:0x2 scope:local data:2byte
btnCurr = .bss:0x00000050; // type:object size:0x2 scope:local data:2byte
btnDownCurr = .bss:0x00000052; // type:object size:0x2 scope:local data:2byte
smSelectPos = .bss:0x00000054; // type:object size:0x2 scope:local data:2byte
smPlayerCfg = .bss:0x00000056; // type:object size:0x28 scope:local data:2byte
outViewObj = .bss:0x00000080; // type:object size:0x4 scope:local data:4byte
smMainObj = .bss:0x00000084; // type:object size:0x4 scope:local data:4byte
smPagePos = .bss:0x00000088; // type:object size:0xE scope:local
smPage = .bss:0x00000096; // type:object size:0x2 scope:local data:2byte

View file

@ -5,3 +5,12 @@ 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/staffDll/staffDll.c:
.text start:0x000000A0 end:0x00001290
.rodata start:0x00000000 end:0x00000094
.data start:0x00000000 end:0x00001178
.bss start:0x00000000 end:0x0000004A

View file

@ -1,12 +1,12 @@
_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:0x218
fn_1_2B8 = .text:0x000002B8; // type:function size:0x60
fn_1_318 = .text:0x00000318; // type:function size:0x3DC
fn_1_6F4 = .text:0x000006F4; // type:function size:0x3AC
fn_1_AA0 = .text:0x00000AA0; // type:function size:0x12C
fn_1_BCC = .text:0x00000BCC; // type:function size:0x1C4
fn_1_D90 = .text:0x00000D90; // type:function size:0x500
ModuleProlog = .text:0x000000A0; // type:function size:0x218
ExitProc = .text:0x000002B8; // type:function size:0x60 scope:local
CreateStaff = .text:0x00000318; // type:function size:0x3DC scope:local
MoveStaff = .text:0x000006F4; // type:function size:0x3AC scope:local
HidePicture = .text:0x00000AA0; // type:function size:0x12C scope:local
ShowPicture = .text:0x00000BCC; // type:function size:0x1C4 scope:local
MainProc = .text:0x00000D90; // type:function size:0x500 scope:local
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
@ -42,13 +42,13 @@ lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float
lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float
lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float
lbl_1_data_0 = .data:0x00000000; // type:object size:0x1158
lbl_1_data_1158 = .data:0x00001158; // type:object size:0xC data:float
staffData = .data:0x00000000; // type:object size:0x1158 scope:local
staffLogoPosTbl = .data:0x00001158; // type:object size:0xC scope:local data:float
lbl_1_data_1164 = .data:0x00001164; // type:object size:0x14 data:string
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte
lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte
lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x6 data:2byte
lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x34 data:2byte
multiViewObj = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte
currImg = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte
staffSide = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte
thpCoverGroup = .bss:0x0000000C; // type:object size:0x2 scope:local data:2byte
thpGroup = .bss:0x0000000E; // type:object size:0x2 scope:local data:2byte
staffLogoGroup = .bss:0x00000010; // type:object size:0x6 scope:local data:2byte
imgGroup = .bss:0x00000016; // type:object size:0x34 scope:local data:2byte

View file

@ -11,7 +11,7 @@ lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 scope:local data:string
lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 scope:local data:string
lbl_1_data_10 = .data:0x00000010; // type:object size:0x8 scope:local data:string
lbl_1_data_18 = .data:0x00000018; // type:object size:0x8 scope:local data:string
player_numstr = .data:0x00000020; // type:object size:0x10 scope:local
playerNumTbl = .data:0x00000020; // type:object size:0x10 scope:local
lbl_1_data_30 = .data:0x00000030; // type:object size:0x6 scope:local data:string
lbl_1_data_36 = .data:0x00000036; // type:object size:0x6 scope:local data:string
lbl_1_data_3C = .data:0x0000003C; // type:object size:0x6 scope:local data:string
@ -20,7 +20,7 @@ lbl_1_data_48 = .data:0x00000048; // type:object size:0x6 scope:local data:strin
lbl_1_data_4E = .data:0x0000004E; // type:object size:0x7 scope:local data:string
lbl_1_data_55 = .data:0x00000055; // type:object size:0x6 scope:local data:string
lbl_1_data_5B = .data:0x0000005B; // type:object size:0x9 scope:local
character_str = .data:0x00000064; // type:object size:0x20 scope:local
charNameTbl = .data:0x00000064; // type:object size:0x20 scope:local
lbl_1_data_84 = .data:0x00000084; // type:object size:0x1 scope:local
lbl_1_data_85 = .data:0x00000085; // type:object size:0x6 scope:local data:string
lbl_1_data_8B = .data:0x0000008B; // type:object size:0x8 scope:local data:string
@ -28,6 +28,6 @@ lbl_1_data_93 = .data:0x00000093; // type:object size:0x7 scope:local data:strin
lbl_1_data_9A = .data:0x0000009A; // type:object size:0x7 scope:local data:string
lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x6 scope:local data:string
lbl_1_data_A7 = .data:0x000000A7; // type:object size:0x9 scope:local
ext_character_str = .data:0x000000B0; // type:object size:0x1C scope:local
extCharNameTbl = .data:0x000000B0; // type:object size:0x1C scope:local
lbl_1_data_CC = .data:0x000000CC; // type:object size:0x15 scope:local data:string
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 scope:local data:byte
dirPlayer = .bss:0x00000000; // type:object size:0x4 scope:local data:byte

View file

@ -5,3 +5,24 @@ Sections:
.rodata type:rodata align:8
.data type:data 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
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
fn_1_E0 = .text:0x000000E0; // type:function size:0x4BC
fn_1_59C = .text:0x0000059C; // type:function size:0x194
BoardInit = .text:0x000000E0; // type:function size:0x4BC
BoardDestroy = .text:0x0000059C; // type:function size:0x194
fn_1_730 = .text:0x00000730; // type:function size:0x44
fn_1_774 = .text:0x00000774; // type:function size:0x4
fn_1_778 = .text:0x00000778; // type:function size:0x9C

View file

@ -5,3 +5,47 @@ Sections:
.rodata type:rodata align:8
.data type:data 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
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
fn_1_E0 = .text:0x000000E0; // type:function size:0x4F4
fn_1_5D4 = .text:0x000005D4; // type:function size:0x158
BoardInit = .text:0x000000E0; // type:function size:0x4F4
BoardDestroy = .text:0x000005D4; // type:function size:0x158
fn_1_72C = .text:0x0000072C; // type:function size:0x44
fn_1_770 = .text:0x00000770; // type:function size:0x4
fn_1_774 = .text:0x00000774; // type:function size:0x8C

View file

@ -5,3 +5,47 @@ Sections:
.rodata type:rodata align:8
.data type:data 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
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
fn_1_E0 = .text:0x000000E0; // type:function size:0x660
fn_1_740 = .text:0x00000740; // type:function size:0x144
BoardInit = .text:0x000000E0; // type:function size:0x660
BoardDestroy = .text:0x00000740; // type:function size:0x144
fn_1_884 = .text:0x00000884; // type:function size:0x6C
fn_1_8F0 = .text:0x000008F0; // type:function size:0x20
fn_1_910 = .text:0x00000910; // type:function size:0x164

View file

@ -6,25 +6,25 @@ Sections:
.data type:data align:8
.bss type:bss align:8
REL/w10Dll/w10Dll_init.c:
REL/board_executor.c:
.text start:0x00000000 end:0x000000E0
REL/w10Dll/w10Dll.c:
REL/w10Dll/main.c:
.text start:0x000000E0 end:0x00000AEC
.rodata start:0x00000000 end:0x00000038
.data start:0x00000000 end:0x00000078
.bss start:0x00000000 end:0x00000038
REL/w10Dll/w10Dll2.c:
REL/w10Dll/host.c:
.text start:0x00000AEC end:0x00000D2C
.rodata start:0x00000038 end:0x00000048
.data start:0x00000078 end:0x00000098
REL/w10Dll/w10Dll3.c:
REL/w10Dll/scene.c:
.text start:0x00000D2C end:0x0000176C
.rodata start:0x00000048 end:0x00000050
REL/w10Dll/w10Dll4.c:
REL/w10Dll/tutorial.c:
.text start:0x0000176C end:0x0000206C
.rodata start:0x00000050 end:0x00000070
.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
_epilog = .text:0x00000094; // type:function size:0x4C scope:global
fn_1_E0 = .text:0x000000E0; // type:function size:0x5F8
fn_1_6D8 = .text:0x000006D8; // type:function size:0x1E8
BoardInit = .text:0x000000E0; // type:function size:0x5F8
BoardDestroy = .text:0x000006D8; // type:function size:0x1E8
fn_1_8C0 = .text:0x000008C0; // type:function size:0x44
fn_1_904 = .text:0x00000904; // type:function size:0x4
fn_1_908 = .text:0x00000908; // type:function size:0x4

View file

@ -215,6 +215,7 @@ game/code_8003FF68.c:
.data start:0x80130100 end:0x80130120
.bss start:0x80192060 end:0x80192360
.sdata start:0x801D35C0 end:0x801D35E0
.sbss start:0x801D3DA0 end:0x801D3DA8
.sdata2 start:0x801D4EA8 end:0x801D4EC0
game/ClusterExec.c:
@ -225,9 +226,6 @@ game/ShapeExec.c:
.text start:0x80040D60 end:0x80041170
.sdata2 start:0x801D4ED0 end:0x801D4EE0
dolphin/os/__start.c:
.init start:0x80003100 end:0x80003354
game/wipe.c:
.text start:0x80041170 end:0x8004207C
.data start:0x80130120 end:0x80130138
@ -326,7 +324,7 @@ game/board/main.c:
.sbss start:0x801D3ED0 end:0x801D3F20
.sdata2 start:0x801D5148 end:0x801D51F8
game/board/board.c:
game/board/player.c:
.text start:0x80061F44 end:0x8006D308
.rodata start:0x8011DD90 end:0x8011DE60
.data start:0x80139898 end:0x80139AA0
@ -349,7 +347,7 @@ game/board/window.c:
.sbss start:0x801D3F68 end:0x801D3F90
.sdata2 start:0x801D5318 end:0x801D5328
game/board/board_snd.c:
game/board/speaker.c:
.text start:0x80070D84 end:0x80071290
.data start:0x80139AE8 end:0x80139B00
.sdata start:0x801D36E8 end:0x801D36F0
@ -529,7 +527,7 @@ game/board/start.c:
game/board/last5.c:
.text start:0x800A9708 end:0x800ADB84
.rodata start:0x8011E410 end:0x8011E430
.rodata start:0x8011E3F0 end:0x8011E430
.data start:0x8013B1F8 end:0x8013B3F0
.bss start:0x801A4CF0 end:0x801A4D38
.sdata start:0x801D3850 end:0x801D38B8
@ -554,6 +552,9 @@ game/board/tutorial.c:
.bss start:0x801A52E8 end:0x801A5300
.sbss start:0x801D4288 end:0x801D42B0
dolphin/os/__start.c:
.init start:0x80003100 end:0x80003354
dolphin/PPCArch.c:
.text start:0x800B42F4 end:0x800B439C
@ -734,6 +735,7 @@ dolphin/demo/DEMOInit.c:
dolphin/demo/DEMOPuts.c:
.text start:0x800C2988 end:0x800C2F84
.bss start:0x801A6190 end:0x801A61B0
.sbss start:0x801D4480 end:0x801D4488
.sdata2 start:0x801D63B8 end:0x801D63D8
@ -815,7 +817,7 @@ dolphin/gx/GXLight.c:
dolphin/gx/GXTexture.c:
.text start:0x800CC5C0 end:0x800CD618
.data start:0x8013DB30 end:0x8013DD58
.sdata start:0x801D3950 end:0x801D3958
.sdata start:0x801D3950 end:0x801D3990
.sdata2 start:0x801D6460 end:0x801D6488
dolphin/gx/GXBump.c:
@ -855,6 +857,7 @@ dolphin/card/CARDBios.c:
dolphin/card/CARDUnlock.c:
.text start:0x800D1CC4 end:0x800D2F24
.data start:0x8013DF00 end:0x8013E060
.sdata start:0x801D3990 end:0x801D3998
dolphin/card/CARDRdwr.c:
.text start:0x800D2F24 end:0x800D31A4
@ -895,6 +898,7 @@ dolphin/card/CARDStat.c:
dolphin/card/CARDNet.c:
.text start:0x800D70E0 end:0x800D71A4
.sdata start:0x801D3998 end:0x801D39A0
dolphin/exi/EXIBios.c:
.text start:0x800D71A4 end:0x800D8A78
@ -925,11 +929,38 @@ dolphin/thp/THPDec.c:
dolphin/thp/THPAudio.c:
.text start:0x800E1A10 end:0x800E1F40
Runtime.PPCEABI.H/__va_arg.c:
.text start:0x800E1F40 end:0x800E2008
Runtime.PPCEABI.H/global_destructor_chain.c:
.text start:0x800E2008 end:0x800E2068
.dtors start:0x8011DCE8 end:0x8011DCEC
.sbss start:0x801D4758 end:0x801D4760
Runtime.PPCEABI.H/__mem.c:
.init start:0x800033A8 end:0x800034E0
Runtime.PPCEABI.H/New.cp:
extab start:0x80005620 end:0x80005648
extabindex start:0x80005700 end:0x8000570C
.text start:0x800E2068 end:0x800E20B4
Runtime.PPCEABI.H/NewMore.cp:
extab start:0x80005648 end:0x80005650
extabindex start:0x8000570C end:0x80005718
.text start:0x800E20B4 end:0x800E2108
.rodata start:0x8011E4D0 end:0x8011E4F0
.data start:0x8013E208 end:0x8013E218
.sdata start:0x801D39A0 end:0x801D39A8
Runtime.PPCEABI.H/NMWException.cp:
extab start:0x80005650 end:0x80005670
extabindex start:0x80005718 end:0x80005748
.text start:0x800E2108 end:0x800E23CC
.text start:0x800E23CC end:0x800E2AA8
.rodata start:0x8011E4F0 end:0x8011E508
.sdata start:0x801D39A8 end:0x801D39B0
Runtime.PPCEABI.H/__init_cpp_exceptions.cpp:
.text start:0x800E2AA8 end:0x800E2B24
.ctors start:0x8011DCC0 end:0x8011DCC4
@ -940,10 +971,476 @@ Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp:
extab start:0x80005670 end:0x800056E4
extabindex start:0x80005748 end:0x8000579C
.text start:0x800E2B24 end:0x800E3F5C
.rodata start:0x8011E4D0 end:0x8011E5A0
.rodata start:0x8011E508 end:0x8011E5A0
.data start:0x8013E218 end:0x8013E300
.bss start:0x801A72D0 end:0x801A72E0
.sdata start:0x801D39B8 end:0x801D39C8
Runtime.PPCEABI.H/GCN_mem_alloc.c:
.text start:0x800E3F5C end:0x800E4014
.rodata start:0x8011E5A0 end:0x8011E618
MSL_C.PPCEABI.bare.H/abort_exit.c:
.text start:0x800E4014 end:0x800E4168
.bss start:0x801A72E0 end:0x801A73E0
.sbss start:0x801D4760 end:0x801D4770
MSL_C.PPCEABI.bare.H/alloc.c:
.text start:0x800E4168 end:0x800E46D0
.rodata start:0x8011E618 end:0x8011E630
.bss start:0x801A73E0 end:0x801A7418
.sbss start:0x801D4770 end:0x801D4778
MSL_C.PPCEABI.bare.H/errno.c:
.sbss start:0x801D4778 end:0x801D4780
MSL_C.PPCEABI.bare.H/ansi_files.c:
.text start:0x800E46D0 end:0x800E47D8
.data start:0x8013E300 end:0x8013E440
.bss start:0x801A7418 end:0x801A7718
MSL_C.PPCEABI.bare.H/ansi_fp.c:
.text start:0x800E47D8 end:0x800E53F0
.rodata start:0x8011E630 end:0x8011E710
.data start:0x8013E440 end:0x8013E568
.sdata2 start:0x801D6510 end:0x801D6518
MSL_C.PPCEABI.bare.H/arith.c:
.text start:0x800E53F0 end:0x800E5400
MSL_C.PPCEABI.bare.H/buffer_io.c:
.text start:0x800E5400 end:0x800E54F8
MSL_C.PPCEABI.bare.H/ctype.c:
.text start:0x800E54F8 end:0x800E5534
.data start:0x8013E568 end:0x8013E768
MSL_C.PPCEABI.bare.H/direct_io.c:
.text start:0x800E5534 end:0x800E5860
MSL_C.PPCEABI.bare.H/file_io.c:
.text start:0x800E5860 end:0x800E5A58
MSL_C.PPCEABI.bare.H/FILE_POS.c:
.text start:0x800E5A58 end:0x800E5D24
MSL_C.PPCEABI.bare.H/mbstring.c:
.text start:0x800E5D24 end:0x800E5E68
.sdata2 start:0x801D6518 end:0x801D6520
MSL_C.PPCEABI.bare.H/mem.c:
.text start:0x800E5E68 end:0x800E5FD8
MSL_C.PPCEABI.bare.H/mem_funcs.c:
.text start:0x800E5FD8 end:0x800E62B8
MSL_C.PPCEABI.bare.H/misc_io.c:
.text start:0x800E62B8 end:0x800E62C8
MSL_C.PPCEABI.bare.H/printf.c:
.text start:0x800E62C8 end:0x800E8364
.rodata start:0x8011E710 end:0x8011E738
.data start:0x8013E768 end:0x8013E998
.sdata start:0x801D39C8 end:0x801D39D0
.sdata2 start:0x801D6520 end:0x801D6528
MSL_C.PPCEABI.bare.H/float.c:
.sdata start:0x801D39D0 end:0x801D39D8
MSL_C.PPCEABI.bare.H/signal.c:
.text start:0x800E8364 end:0x800E8414
.bss start:0x801A7718 end:0x801A7730
MSL_C.PPCEABI.bare.H/string.c:
.text start:0x800E8414 end:0x800E86C4
MSL_C.PPCEABI.bare.H/uart_console_io.c:
.text start:0x800E86C4 end:0x800E8790
.sbss start:0x801D4780 end:0x801D4788
MSL_C.PPCEABI.bare.H/wchar_io.c:
.text start:0x800E8790 end:0x800E8818
MSL_C.PPCEABI.bare.H/e_acos.c:
.text start:0x800E8818 end:0x800E8B28
.sdata2 start:0x801D6528 end:0x801D65B8
MSL_C.PPCEABI.bare.H/e_asin.c:
.text start:0x800E8B28 end:0x800E8D8C
.sdata2 start:0x801D65B8 end:0x801D6650
MSL_C.PPCEABI.bare.H/e_atan2.c:
.text start:0x800E8D8C end:0x800E901C
.sdata2 start:0x801D6650 end:0x801D66A8
MSL_C.PPCEABI.bare.H/e_fmod.c:
.text start:0x800E901C end:0x800E9358
.rodata start:0x8011E738 end:0x8011E748
MSL_C.PPCEABI.bare.H/e_pow.c:
.text start:0x800E9358 end:0x800E9BE4
.rodata start:0x8011E748 end:0x8011E778
.sdata2 start:0x801D66A8 end:0x801D67B8
MSL_C.PPCEABI.bare.H/e_rem_pio2.c:
.text start:0x800E9BE4 end:0x800E9F84
.rodata start:0x8011E778 end:0x8011E900
.sdata2 start:0x801D67B8 end:0x801D6810
MSL_C.PPCEABI.bare.H/k_cos.c:
.text start:0x800E9F84 end:0x800EA078
.sdata2 start:0x801D6810 end:0x801D6858
MSL_C.PPCEABI.bare.H/k_rem_pio2.c:
.text start:0x800EA078 end:0x800EAECC
.rodata start:0x8011E900 end:0x8011E950
.sdata2 start:0x801D6858 end:0x801D6898
MSL_C.PPCEABI.bare.H/k_sin.c:
.text start:0x800EAECC end:0x800EAF6C
.sdata2 start:0x801D6898 end:0x801D68D0
MSL_C.PPCEABI.bare.H/k_tan.c:
.text start:0x800EAF6C end:0x800EB180
.rodata start:0x8011E950 end:0x8011E9B8
.sdata2 start:0x801D68D0 end:0x801D6908
MSL_C.PPCEABI.bare.H/s_atan.c:
.text start:0x800EB180 end:0x800EB380
.rodata start:0x8011E9B8 end:0x8011EA50
.sdata2 start:0x801D6908 end:0x801D6930
MSL_C.PPCEABI.bare.H/s_copysign.c:
.text start:0x800EB380 end:0x800EB3A8
MSL_C.PPCEABI.bare.H/s_cos.c:
.text start:0x800EB3A8 end:0x800EB47C
.sdata2 start:0x801D6930 end:0x801D6938
MSL_C.PPCEABI.bare.H/s_floor.c:
.text start:0x800EB47C end:0x800EB5C4
.sdata2 start:0x801D6938 end:0x801D6948
MSL_C.PPCEABI.bare.H/s_frexp.c:
.text start:0x800EB5C4 end:0x800EB650
.sdata2 start:0x801D6948 end:0x801D6950
MSL_C.PPCEABI.bare.H/s_ldexp.c:
.text start:0x800EB650 end:0x800EB814
.sdata2 start:0x801D6950 end:0x801D6978
MSL_C.PPCEABI.bare.H/s_modf.c:
.text start:0x800EB814 end:0x800EB910
MSL_C.PPCEABI.bare.H/s_sin.c:
.text start:0x800EB910 end:0x800EB9E8
.sdata2 start:0x801D6978 end:0x801D6980
MSL_C.PPCEABI.bare.H/s_tan.c:
.text start:0x800EB9E8 end:0x800EBA60
.sdata2 start:0x801D6980 end:0x801D6988
MSL_C.PPCEABI.bare.H/w_acos.c:
.text start:0x800EBA60 end:0x800EBA80
MSL_C.PPCEABI.bare.H/w_asin.c:
.text start:0x800EBA80 end:0x800EBAA0
MSL_C.PPCEABI.bare.H/w_atan2.c:
.text start:0x800EBAA0 end:0x800EBAC0
MSL_C.PPCEABI.bare.H/w_fmod.c:
.text start:0x800EBAC0 end:0x800EBAE0
MSL_C.PPCEABI.bare.H/w_pow.c:
.text start:0x800EBAE0 end:0x800EBB00
MSL_C.PPCEABI.bare.H/math_ppc.c:
.text start:0x800EBB00 end:0x800EBBB4
TRK_MINNOW_DOLPHIN/mainloop.c:
.text start:0x800EBBB4 end:0x800EBCAC
TRK_MINNOW_DOLPHIN/nubevent.c:
.text start:0x800EBCAC end:0x800EBED4
.bss start:0x801A7730 end:0x801A7758
TRK_MINNOW_DOLPHIN/nubinit.c:
.text start:0x800EBED4 end:0x800EC054
.rodata start:0x8011EA50 end:0x8011EA70
.bss start:0x801A7758 end:0x801A7760
TRK_MINNOW_DOLPHIN/msg.c:
.text start:0x800EC054 end:0x800EC230
TRK_MINNOW_DOLPHIN/msgbuf.c:
.text start:0x800EC230 end:0x800ECC5C
.rodata start:0x8011EA70 end:0x8011EA90
.bss start:0x801A7760 end:0x801A9110
TRK_MINNOW_DOLPHIN/serpoll.c:
.text start:0x800ECC5C end:0x800ED028
.bss start:0x801A9110 end:0x801A9128
TRK_MINNOW_DOLPHIN/usrput.c:
.text start:0x800ED028 end:0x800ED0B4
TRK_MINNOW_DOLPHIN/dispatch.c:
.text start:0x800ED0B4 end:0x800ED150
.data start:0x8013E998 end:0x8013EA20
.bss start:0x801A9128 end:0x801A9130
TRK_MINNOW_DOLPHIN/msghndlr.c:
.text start:0x800ED150 end:0x800EF9B0
.data start:0x8013EA20 end:0x8013EA58
.bss start:0x801A9130 end:0x801A9138
TRK_MINNOW_DOLPHIN/support.c:
.text start:0x800EF9B0 end:0x800F0270
TRK_MINNOW_DOLPHIN/mutex_TRK.c:
.text start:0x800F0270 end:0x800F0288
TRK_MINNOW_DOLPHIN/notify.c:
.text start:0x800F0288 end:0x800F0360
TRK_MINNOW_DOLPHIN/flush_cache.c:
.text start:0x800F0360 end:0x800F0398
TRK_MINNOW_DOLPHIN/mem_TRK.c:
.init start:0x800034E0 end:0x80003534
.text start:0x800F0398 end:0x800F0454
TRK_MINNOW_DOLPHIN/targimpl.c:
.text start:0x800F0454 end:0x800F1CF0
.rodata start:0x8011EA90 end:0x8011EB18
.data start:0x8013EA58 end:0x8013EA88
.bss start:0x801A9138 end:0x801A96B8
TRK_MINNOW_DOLPHIN/targsupp.c:
.text start:0x800F1CF0 end:0x800F1D10
TRK_MINNOW_DOLPHIN/__exception.c:
.init start:0x80003534 end:0x80005468
TRK_MINNOW_DOLPHIN/dolphin_trk.c:
.init start:0x80005468 end:0x8000556C
.text start:0x800F1D10 end:0x800F1E50
.data start:0x8013EA88 end:0x8013EAC8
.bss start:0x801A96B8 end:0x801A96C0
TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c:
.text start:0x800F1E50 end:0x800F21C8
TRK_MINNOW_DOLPHIN/main_TRK.c:
.text start:0x800F21C8 end:0x800F220C
.bss start:0x801A96C0 end:0x801A96C8
TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c:
.text start:0x800F220C end:0x800F26B8
.rodata start:0x8011EB18 end:0x8011EB60
.data start:0x8013EAC8 end:0x8013EAE8
.bss start:0x801A96C8 end:0x801AB8F0
TRK_MINNOW_DOLPHIN/targcont.c:
.text start:0x800F26B8 end:0x800F26EC
TRK_MINNOW_DOLPHIN/target_options.c:
.text start:0x800F26EC end:0x800F2708
.bss start:0x801AB8F0 end:0x801AB8F8
TRK_MINNOW_DOLPHIN/mslsupp.c:
.text start:0x800F2708 end:0x800F2880
musyx/runtime/seq.c:
.text start:0x800F2880 end:0x800F67F0
.data start:0x8013EAE8 end:0x8013EB38
.bss start:0x801AB8F8 end:0x801B9138
.sbss start:0x801D4788 end:0x801D47A8
.sdata2 start:0x801D6988 end:0x801D69A8
musyx/runtime/synth.c:
.text start:0x800F67F0 end:0x800F9B4C
.bss start:0x801B9138 end:0x801BA720
.sbss start:0x801D47A8 end:0x801D47F0
.sdata2 start:0x801D69A8 end:0x801D69E8
musyx/runtime/seq_api.c:
.text start:0x800F9B4C end:0x800F9DCC
musyx/runtime/snd_synthapi.c:
.text start:0x800F9DCC end:0x800FA54C
musyx/runtime/stream.c:
.text start:0x800FA54C end:0x800FE0B8
.bss start:0x801BA720 end:0x801BC020
.sbss start:0x801D47F0 end:0x801D47F8
.sdata2 start:0x801D69E8 end:0x801D6A00
musyx/runtime/synthdata.c:
.text start:0x800FE0B8 end:0x800FFE48
.bss start:0x801BC020 end:0x801C6658
.sbss start:0x801D47F8 end:0x801D4840
musyx/runtime/synthmacros.c:
.text start:0x800FFE48 end:0x80104BA0
.data start:0x8013EB38 end:0x8013EF80
.bss start:0x801C6658 end:0x801C6678
.sbss start:0x801D4840 end:0x801D4860
.sdata2 start:0x801D6A00 end:0x801D6A28
musyx/runtime/synthvoice.c:
.text start:0x80104BA0 end:0x80106630
.bss start:0x801C6678 end:0x801C7638
.sbss start:0x801D4860 end:0x801D4878
musyx/runtime/synth_ac.c:
.text start:0x80106630 end:0x80106750
.data start:0x8013EF80 end:0x8013F380
.sdata2 start:0x801D6A28 end:0x801D6A40
musyx/runtime/synth_dbtab.c:
.data start:0x8013F380 end:0x8013FB08
musyx/runtime/synth_adsr.c:
.text start:0x80106750 end:0x80106F10
.sdata2 start:0x801D6A40 end:0x801D6A68
musyx/runtime/synth_vsamples.c:
.text start:0x80106F10 end:0x80107698
.bss start:0x801C7638 end:0x801C7F88
musyx/runtime/s_data.c:
.text start:0x80107698 end:0x801081F0
.bss start:0x801C7F88 end:0x801C8588
.sbss start:0x801D4878 end:0x801D4880
musyx/runtime/hw_dspctrl.c:
.text start:0x801081F0 end:0x8010B604
.rodata start:0x8011EB60 end:0x8011EBB8
.data start:0x8013FB08 end:0x8013FB20
.bss start:0x801C8588 end:0x801C8C68
.sbss start:0x801D4880 end:0x801D48C0
musyx/runtime/hw_volconv.c:
.text start:0x8010B604 end:0x8010BCF4
.data start:0x8013FB20 end:0x8013FD48
.sdata2 start:0x801D6A68 end:0x801D6AA0
musyx/runtime/snd3d.c:
.text start:0x8010BCF4 end:0x8010E0C4
.bss start:0x801C8C68 end:0x801C9AB8
.sbss start:0x801D48C0 end:0x801D48E0
.sdata2 start:0x801D6AA0 end:0x801D6AF0
musyx/runtime/snd_init.c:
.text start:0x8010E0C4 end:0x8010E218
musyx/runtime/snd_math.c:
.text start:0x8010E218 end:0x8010E5D8
.sdata2 start:0x801D6AF0 end:0x801D6B10
musyx/runtime/snd_midictrl.c:
.text start:0x8010E5D8 end:0x801102AC
.rodata start:0x8011EBB8 end:0x8011ECC8
.data start:0x8013FD48 end:0x8013FDD8
.bss start:0x801C9AB8 end:0x801D02B8
musyx/runtime/snd_service.c:
.text start:0x801102AC end:0x80110458
.data start:0x8013FDD8 end:0x801405E0
.sdata start:0x801D39D8 end:0x801D39E0
musyx/runtime/hardware.c:
.text start:0x80110458 end:0x8011145C
.rodata start:0x8011ECC8 end:0x8011EDC8
.sdata start:0x801D39E0 end:0x801D39F0
.sbss start:0x801D48E0 end:0x801D48F0
.sdata2 start:0x801D6B10 end:0x801D6B28
musyx/runtime/dsp_import.c:
.data start:0x801405E0 end:0x80141FC0
.sdata start:0x801D39F0 end:0x801D39F8
musyx/runtime/hw_aramdma.c:
.text start:0x8011145C end:0x801120D0
.bss start:0x801D02B8 end:0x801D0BC0
.sbss start:0x801D48F0 end:0x801D4910
musyx/runtime/hw_dolphin.c:
.text start:0x801120D0 end:0x801125C8
.bss start:0x801D0BC0 end:0x801D2C20
.sbss start:0x801D4910 end:0x801D4938
musyx/runtime/hw_memory.c:
.text start:0x801125C8 end:0x8011261C
musyx/runtime/CheapReverb/creverb_fx.c:
.text start:0x8011261C end:0x801126D8
musyx/runtime/CheapReverb/creverb.c:
.text start:0x801126D8 end:0x80112F94
.data start:0x80141FC0 end:0x80141FD0
.sdata2 start:0x801D6B28 end:0x801D6B68
musyx/runtime/StdReverb/reverb_fx.c:
.text start:0x80112F94 end:0x80113054
musyx/runtime/StdReverb/reverb.c:
.text start:0x80113054 end:0x80113D98
.data start:0x80141FD0 end:0x80141FF0
.sdata2 start:0x801D6B68 end:0x801D6BB0
musyx/runtime/Delay/delay_fx.c:
.text start:0x80113D98 end:0x80114144
musyx/runtime/Chorus/chorus_fx.c:
.text start:0x80114144 end:0x801149AC
.data start:0x80141FF0 end:0x801427F0
.sdata2 start:0x801D6BB0 end:0x801D6BB8
OdemuExi2/DebuggerDriver.c:
.text start:0x801149AC end:0x8011542C
.sdata start:0x801D39F8 end:0x801D39F9
.sbss start:0x801D4938 end:0x801D494D
amcstubs/AmcExi2Stubs.c:
.text start:0x8011542C end:0x8011545C
odenotstub/odenotstub.c:
.text start:0x8011545C end:0x80115464
libhu/setvf.c:
.text start:0x80115464 end:0x80115474
libhu/subvf.c:
.text start:0x80115474 end:0x801154A8
msm/msmsys.c:
.text start:0x801154A8 end:0x801176C8
.bss start:0x801D2C20 end:0x801D3120
.sdata2 start:0x801D6BB8 end:0x801D6BC0
msm/msmmem.c:
.text start:0x801176C8 end:0x801178F8
.bss start:0x801D3120 end:0x801D3150
msm/msmfio.c:
.text start:0x801178F8 end:0x801179E8
.bss start:0x801D3150 end:0x801D3160
msm/msmmus.c:
.text start:0x801179E8 end:0x80118A80
.bss start:0x801D3160 end:0x801D32D8
msm/msmse.c:
.text start:0x80118A80 end:0x8011A044
.bss start:0x801D32D8 end:0x801D33C0
.sdata2 start:0x801D6BC0 end:0x801D6BD8
msm/msmstream.c:
.text start:0x8011A044 end:0x8011CCC4
.bss start:0x801D33C0 end:0x801D3420
game/kerent.c:
.text start:0x8011CCC4 end:0x8011DCA8

File diff suppressed because it is too large Load diff

View file

@ -150,9 +150,11 @@ cflags_base = [
"-fp_contract on",
"-str reuse",
"-i include",
"-i extern/musyx/include",
f"-i build/{config.version}/include",
"-multibyte",
f"-DVERSION={version_num}",
"-DMUSY_TARGET=MUSY_TARGET_DOLPHIN",
]
# Debug flags
@ -170,6 +172,57 @@ cflags_runtime = [
"-inline auto,deferred",
]
# Metrowerks library flags
cflags_msl = [
*cflags_base,
"-use_lmw_stmw on",
"-str reuse,pool,readonly",
"-common off",
"-inline auto,deferred",
]
# Metrowerks library flags
cflags_trk = [
*cflags_base,
"-use_lmw_stmw on",
"-str reuse,pool,readonly",
"-common off",
"-sdata 0",
"-sdata2 0",
"-inline auto,deferred",
]
cflags_odemuexi = [
*cflags_base,
"-inline auto,deferred",
]
cflags_amcstub = [
*cflags_base,
"-inline auto,deferred",
]
cflags_odenotstub = [
*cflags_base,
"-inline auto,deferred",
]
cflags_musyx = [
"-proc gekko",
"-nodefaults",
"-nosyspath",
"-i include",
"-i extern/musyx/include",
"-inline auto",
"-O4,p",
"-fp hard",
"-enum int",
"-Cpp_exceptions off",
"-str reuse,pool,readonly",
"-fp_contract off",
"-DMUSY_TARGET=MUSY_TARGET_DOLPHIN",
]
# REL flags
cflags_rel = [
*cflags_base,
@ -190,6 +243,18 @@ cflags_game = [
"-fp_contract off",
]
# Game flags
cflags_libhu = [
*cflags_base,
"-O0,p",
"-char unsigned",
"-fp_contract off",
]
# Game flags
cflags_msm = [
*cflags_base,
]
config.linker_version = "GC/2.6"
config.rel_strip_partial = False
@ -206,6 +271,21 @@ def DolphinLib(lib_name, objects):
"objects": objects,
}
def MusyX(objects, mw_version="GC/2.6", debug=False, major=2, minor=0, patch=0):
cflags = cflags_musyx if not debug else cflags_musyx_debug
return {
"lib": "musyx",
"mw_version": mw_version,
"src_dir": "extern/musyx/src",
"host": False,
"cflags": [
*cflags,
f"-DMUSY_VERSION_MAJOR={major}",
f"-DMUSY_VERSION_MINOR={minor}",
f"-DMUSY_VERSION_PATCH={patch}",
],
"objects": objects,
}
# Helper function for REL script objects
def Rel(lib_name, objects):
@ -280,10 +360,10 @@ config.libs = [
Object(Matching, "game/saveload.c"),
Object(NonMatching, "game/sreset.c"),
Object(NonMatching, "game/board/main.c"),
Object(NonMatching, "game/board/board.c"),
Object(NonMatching, "game/board/player.c"),
Object(NonMatching, "game/board/model.c"),
Object(NonMatching, "game/board/window.c"),
Object(NonMatching, "game/board/board_snd.c"),
Object(NonMatching, "game/board/speaker.c"),
Object(NonMatching, "game/board/com.c"),
Object(NonMatching, "game/board/overhead.c"),
Object(NonMatching, "game/board/space.c"),
@ -485,9 +565,187 @@ config.libs = [
"cflags": cflags_runtime,
"host": False,
"objects": [
Object(NonMatching, "Runtime.PPCEABI.H/__va_arg.c"),
Object(Matching, "Runtime.PPCEABI.H/global_destructor_chain.c"),
Object(NonMatching, "Runtime.PPCEABI.H/__mem.c"),
Object(NonMatching, "Runtime.PPCEABI.H/New.cp"),
Object(NonMatching, "Runtime.PPCEABI.H/NewMore.cp"),
Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cp"),
Object(Matching, "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"),
Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp"),
Object(NonMatching, "Runtime.PPCEABI.H/GCN_mem_alloc.c"),
],
},
{
"lib": "MSL_C.PPCEABI.bare.H",
"mw_version": config.linker_version,
"cflags": cflags_msl,
"host": False,
"objects": [
Object(NonMatching, "MSL_C.PPCEABI.bare.H/abort_exit.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/alloc.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/errno.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_files.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_fp.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/arith.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/buffer_io.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/ctype.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/direct_io.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/file_io.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/FILE_POS.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/mbstring.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/mem.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/mem_funcs.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/misc_io.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/printf.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/float.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/signal.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/string.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/uart_console_io.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/wchar_io.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_acos.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_asin.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_atan2.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_fmod.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_pow.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_rem_pio2.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_cos.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_rem_pio2.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_sin.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_tan.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_atan.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_copysign.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_cos.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_floor.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_frexp.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_ldexp.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_modf.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_sin.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_tan.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_acos.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_asin.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_atan2.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_fmod.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_pow.c"),
Object(NonMatching, "MSL_C.PPCEABI.bare.H/math_ppc.c"),
],
},
{
"lib": "TRK_MINNOW_DOLPHIN",
"mw_version": config.linker_version,
"cflags": cflags_trk,
"host": False,
"objects": [
Object(NonMatching, "TRK_MINNOW_DOLPHIN/mainloop.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/nubevent.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/nubinit.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/msg.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/msgbuf.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/serpoll.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/usrput.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/dispatch.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/msghndlr.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/support.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/mutex_TRK.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/notify.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/flush_cache.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/mem_TRK.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/targimpl.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/targsupp.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/__exception.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/main_TRK.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/targcont.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/target_options.c"),
Object(NonMatching, "TRK_MINNOW_DOLPHIN/mslsupp.c"),
],
},
MusyX(
objects={
Object(Matching, "musyx/runtime/seq.c"),
Object(NonMatching, "musyx/runtime/synth.c"),
Object(Matching, "musyx/runtime/seq_api.c"),
Object(Matching, "musyx/runtime/snd_synthapi.c"),
Object(NonMatching, "musyx/runtime/stream.c"),
Object(Matching, "musyx/runtime/synthdata.c"),
Object(NonMatching, "musyx/runtime/synthmacros.c"),
Object(NonMatching, "musyx/runtime/synthvoice.c"),
Object(Matching, "musyx/runtime/synth_ac.c"),
Object(Matching, "musyx/runtime/synth_dbtab.c"),
Object(NonMatching, "musyx/runtime/synth_adsr.c"),
Object(NonMatching, "musyx/runtime/synth_vsamples.c"),
Object(NonMatching, "musyx/runtime/s_data.c"),
Object(NonMatching, "musyx/runtime/hw_dspctrl.c"),
Object(Matching, "musyx/runtime/hw_volconv.c"),
Object(Matching, "musyx/runtime/snd3d.c"),
Object(Matching, "musyx/runtime/snd_init.c"),
Object(NonMatching, "musyx/runtime/snd_math.c"),
Object(NonMatching, "musyx/runtime/snd_midictrl.c"),
Object(NonMatching, "musyx/runtime/snd_service.c"),
Object(Matching, "musyx/runtime/hardware.c"),
Object(Matching, "musyx/runtime/dsp_import.c"),
Object(Matching, "musyx/runtime/hw_aramdma.c"),
Object(Matching, "musyx/runtime/hw_dolphin.c"),
Object(Matching, "musyx/runtime/hw_memory.c"),
Object(Matching, "musyx/runtime/CheapReverb/creverb_fx.c"),
Object(NonMatching, "musyx/runtime/CheapReverb/creverb.c"),
Object(Matching, "musyx/runtime/StdReverb/reverb_fx.c"),
Object(NonMatching, "musyx/runtime/StdReverb/reverb.c"),
Object(Matching, "musyx/runtime/Delay/delay_fx.c"),
Object(Matching, "musyx/runtime/Chorus/chorus_fx.c"),
}
),
{
"lib": "OdemuExi2",
"mw_version": config.linker_version,
"cflags": cflags_odemuexi,
"host": False,
"objects": [
Object(NonMatching, "OdemuExi2/DebuggerDriver.c"),
],
},
{
"lib": "amcstubs",
"mw_version": config.linker_version,
"cflags": cflags_amcstub,
"host": False,
"objects": [
Object(NonMatching, "amcstubs/AmcExi2Stubs.c"),
],
},
{
"lib": "odenotstub",
"mw_version": config.linker_version,
"cflags": cflags_odenotstub,
"host": False,
"objects": [
Object(NonMatching, "odenotstub/odenotstub.c"),
],
},
{
"lib": "libhu",
"mw_version": config.linker_version,
"cflags": cflags_libhu,
"host": False,
"objects": [
Object(NonMatching, "libhu/setvf.c"),
Object(NonMatching, "libhu/subvf.c"),
],
},
{
"lib": "msm",
"mw_version": "GC/1.2.5n",
"cflags": cflags_msm,
"host": False,
"objects": [
Object(NonMatching, "msm/msmsys.c"),
Object(NonMatching, "msm/msmmem.c"),
Object(Matching, "msm/msmfio.c"),
Object(NonMatching, "msm/msmmus.c"),
Object(NonMatching, "msm/msmse.c"),
Object(NonMatching, "msm/msmstream.c"),
],
},
{
@ -500,50 +758,177 @@ config.libs = [
Object(Matching, "REL/empty.c"), # Must be marked as matching
],
},
{
"lib": "_minigameDLL",
"mw_version": config.linker_version,
"cflags": cflags_rel,
"host": False,
"objects": [
Rel('_minigameDLL',
objects = {
Object(Matching, "REL/executor.c"),
Object(Matching, "REL/_minigameDLL/_minigameDLL.c"),
],
},
{
"lib": "bootDll",
"mw_version": config.linker_version,
"cflags": cflags_rel,
"host": False,
"objects": [
}
),
Rel('bootDll',
objects = {
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/bootDll/bootDll.c"),
Object(Matching, "REL/bootDll/nintendo_data.c"),
],
},
{
"lib": "subchrselDll",
"mw_version": config.linker_version,
"cflags": cflags_rel,
"host": False,
"objects": [
}
),
Rel('E3setupDLL',
objects = {
Object(NonMatching, "REL/E3setupDLL/mgselect.c"),
Object(Matching, "REL/executor.c"),
Object(Matching, "REL/subchrselDll/subchrselDll.c"),
],
},
{
"lib": "w10Dll",
"mw_version": config.linker_version,
"cflags": cflags_rel,
"host": False,
"objects": [
Object(Matching, "REL/w10Dll/w10Dll_init.c"),
Object(Matching, "REL/w10Dll/w10Dll.c"),
Object(Matching, "REL/w10Dll/w10Dll2.c"),
Object(Matching, "REL/w10Dll/w10Dll3.c"),
Object(Matching, "REL/w10Dll/w10Dll4.c"),
],
},
Object(NonMatching, "REL/E3setupDLL/main.c"),
}
),
Rel('instDll',
objects = {
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/instDll/main.c"),
Object(NonMatching, "REL/instDll/font.c"),
}
),
Rel('m401Dll',
objects = {
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/m401Dll/main.c"),
Object(NonMatching, "REL/m401Dll/main_ex.c"),
}
),
Rel('m402Dll',
objects = {
Object(NonMatching, "REL/m402Dll/main.c"),
}
),
Rel('m403Dll',
objects = {
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/m403Dll/main.c"),
Object(NonMatching, "REL/m403Dll/scene.c"),
}
),
Rel('m404Dll',
objects = {
Object(Matching, "REL/executor.c"),
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"),
Object(NonMatching, "REL/modeseldll/main.c"),
Object(NonMatching, "REL/modeseldll/modesel.c"),
Object(NonMatching, "REL/modeseldll/filesel.c"),
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"),
Object(NonMatching, "REL/option/scene.c"),
Object(NonMatching, "REL/option/camera.c"),
Object(NonMatching, "REL/option/room.c"),
Object(NonMatching, "REL/option/guide.c"),
Object(NonMatching, "REL/option/state.c"),
Object(NonMatching, "REL/option/rumble.c"),
Object(NonMatching, "REL/option/sound.c"),
Object(NonMatching, "REL/option/record.c"),
Object(NonMatching, "REL/option/window.c"),
}
),
Rel('present',
objects = {
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/present/init.c"),
Object(NonMatching, "REL/present/camera.c"),
Object(NonMatching, "REL/present/present.c"),
Object(NonMatching, "REL/present/main.c"),
Object(NonMatching, "REL/present/common.c"),
}
),
Rel('selmenuDll',
objects = {
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/selmenuDll/selmenuDll.c"),
}
),
Rel('staffDll',
objects = {
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/staffDll/staffDll.c"),
}
),
Rel('subchrselDll',
objects = {
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/subchrselDll/subchrselDll.c"),
}
),
Rel('w01Dll',
objects = {
Object(Matching, "REL/board_executor.c"),
Object(NonMatching, "REL/w01Dll/main.c"),
Object(NonMatching, "REL/w01Dll/mg_coin.c"),
Object(NonMatching, "REL/w01Dll/mg_item.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"),
}
),
]
if args.mode == "configure":

1
extern/musyx vendored Submodule

@ -0,0 +1 @@
Subproject commit ddfad60c3e4fede55479c744a1c70081e0d6cd12

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

@ -47,7 +47,7 @@ typedef struct w10DllUnk04 {
extern s16 lbl_1_bss_20;
extern s16 lbl_1_bss_22[];
extern s16 lbl_1_bss_20;
extern s32 lbl_801A52E8;
extern s32 boardTutorialData;
void fn_1_C10(s16);
void fn_1_1FB0(void);

View file

@ -16,8 +16,8 @@ typedef struct system_state {
/* 0x00 */ struct {
u8 story : 1;
u8 team : 1;
u8 : 7;
};
/* 0x01 */ s8 diff_story;
/* 0x02 */ struct {
u16 bonus_star : 1;
u16 explain_mg : 1;
@ -62,8 +62,8 @@ typedef struct player_state {
u8 team : 1;
u8 field02_bit1 : 1;
u8 player_idx : 2;
u8 field02_bit4 : 5;
};
/* 0x03 */ s8 handicap;
/* 0x04 */ s8 port;
/* 0x05 */ s8 items[3];
/* 0x08 */ struct {
@ -80,7 +80,7 @@ typedef struct player_state {
/* 0x0C */ s16 space_curr;
/* 0x0E */ s16 space_prev;
/* 0x10 */ s16 space_next;
/* 0x12 */ s16 unk_12;
/* 0x12 */ s16 space_shock;
/* 0x14 */ u8 blue_count;
/* 0x15 */ u8 red_count;
/* 0x16 */ u8 question_count;

View file

@ -118,7 +118,10 @@ s32 DVDConvertPathToEntrynum(char* pathPtr);
BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset,
DVDCallback callback, s32 prio);
BOOL DVDReadPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, s32 prio);
#define DVDReadAsync(fileInfo, addr, length, offset, callback) \
DVDReadAsyncPrio((fileInfo), (addr), (length), (offset), (callback), 2)
#define DVDRead(fileInfo, addr, length, offset) \

View file

@ -60,9 +60,9 @@ static inline void OSf32tos16(f32 *f, s16 *out) { *out = __OSf32tos16(*f); }
static inline u8 __OSf32tou8(register f32 inF)
{
register u8 out;
u32 tmp;
register u32 *tmpPtr = &tmp;
register u8 out;
// clang-format off
asm {
psq_st inF, 0(tmpPtr), 0x1, OS_FASTCAST_U8

18
include/float.h Normal file
View file

@ -0,0 +1,18 @@
#ifndef _FLOAT_H_
#define _FLOAT_H_
#ifdef __cplusplus
extern "C" {
#endif
#define FLT_MAX 3.402823466e+38f
#define FLT_EPSILON 1.192092896e-07f
#define FLT_MIN 1.175494351e-38f
#define DBL_EPSILON 1.1920929e-07
#ifdef __cplusplus
}
#endif
#endif

View file

@ -60,18 +60,18 @@ void fn_800884F4(s32);
void fn_800A4C88(void);
void fn_800A6B10(void);
void fn_8008853C(s32);
void fn_800B42B4(s32);
void BoardTutorialItemSet(s32);
void fn_80082AAC(s32);
void fn_800B4264(s32, s32, s32);
void BoardTutorialDirInputSet(s32, s32, s32);
void BoardSpaceStarSetIndex(s32);
void BoardModelRotYSet(s32, f32);
f32 BoardModelRotYGet(s32);
void BoardModelLayerSet(s16, s32);
void fn_800B42BC(s16);
void BoardTutorialHostSet(s16);
s32 BoardModelIDGet(s16);
void BoardInit(void*, void*);
void BoardCommonInit(void*, void*);
void BoardModelScaleSetV(s32, Vec*);
void fn_8005D10C(void*, void*);
void BoardLightHookSet(void*, void*);
s16 BoardModelCreate(s32, void*, s32);
void BoardModelKill(s16);
void fn_8006DDE8(s16, f32);
@ -91,8 +91,8 @@ void fn_80077AAC(s16);
void fn_8007A83C(s16);
void fn_80083EDC(s16);
void fn_800A4F6C(s16);
void fn_800B3FD8(void*);
void fn_800B4274(s32, s32);
void BoardTutorialHookSet(void*);
void BoardTutorialBlockSetPos(s32, s32);
void BoardCameraRotGet(Vec*);
void BoardModelScaleSet(s16, f32, f32, f32);
s32 BoardIsKill(void);

View file

@ -4,34 +4,34 @@
#include "dolphin.h"
void GWInit(void);
void GWResetGameStat(void);
s16 GWGetMessSpeed(void);
void GWSetMGRecord(int index, s32 value);
s32 GWGetMGRecord(int index);
void GWGetCharColor(int character, GXColor *color);
void GWSetBoardPlayCount(int board, u8 value);
void GWAddBoardPlayCount(int board, u8 value);
u8 GWGetBoardPlayCount(int board);
void GWSetBoardMaxStars(int board, int value);
u16 GWGetBoardMaxStars(int board);
void GWSetBoardMaxCoins(int board, int value);
u16 GWGetBoardMaxCoins(int board);
int GWIncBoardWinCount(int character, int board);
int GWGetBoardWinCount(int character, int board);
void GWSetBoardWinCount(int character, int board, int value);
int GWGetMGAvail(int id);
int GWSetMGAvail(int id);
int GWGetMGCustom(int id);
int GWSetMGCustom(int id);
int GWResetMGCustom(int id);
s16 GWGetCoins(int player);
void GWSetCoins(int player, s16 value);
void GWAddCoins(int player, s16 amount);
void GWSetStars(int player, s16 value);
void GWAddStars(int player, s16 amount);
s16 GWGetStars(int player);
void GWSetTotalStars(s16 value);
void GWAddTotalStars(s16 amount);
u16 GWGetTotalStars(void);
void GWGameStatReset(void);
s16 GWMessSpeedGet(void);
void GWMGRecordSet(int index, s32 value);
s32 GWMGRecordGet(int index);
void GWCharColorGet(int character, GXColor *color);
void GWBoardPlayCountSet(int board, u8 value);
void GWBoardPlayCountAdd(int board, u8 value);
u8 GWBoardPlayCountGet(int board);
void GWBoardMaxStarsSet(int board, int value);
u16 GWBoardMaxStarsGet(int board);
void GWBoardMaxCoinsSet(int board, int value);
u16 GWBoardMaxCoinsGet(int board);
int GWBoardWinCountInc(int character, int board);
int GWBoardWinCountGet(int character, int board);
void GWBoardWinCountSet(int character, int board, int value);
int GWMGAvailGet(int id);
int GWMGAvailSet(int id);
int GWMGCustomGet(int id);
int GWMGCustomSet(int id);
int GWMGCustomReset(int id);
s16 GWCoinsGet(int player);
void GWCoinsSet(int player, s16 value);
void GWCoinsAdd(int player, s16 amount);
void GWStarsSet(int player, s16 value);
void GWStarsAdd(int player, s16 amount);
s16 GWStarsGet(int player);
void GWTotalStarsSet(s16 value);
void GWTotalStarsAdd(s16 amount);
u16 GWTotalStarsGet(void);
#endif

View file

@ -31,25 +31,25 @@ typedef struct om_ovl_his_data {
} omOvlHisData;
typedef struct om_obj_data {
u16 stat;
s16 next_idx_alloc;
s16 prio;
s16 prev;
s16 next;
s16 next_idx;
s16 group;
u16 group_idx;
int unk10;
omObjFunc func;
Vec trans;
Vec rot;
Vec scale;
u16 mdlcnt;
s16 *model;
u16 mtncnt;
s16 *motion;
int work[4];
void *data;
/* 0x00 */ u16 stat;
/* 0x02 */ s16 next_idx_alloc;
/* 0x04 */ s16 prio;
/* 0x06 */ s16 prev;
/* 0x08 */ s16 next;
/* 0x0A */ s16 next_idx;
/* 0x0C */ s16 group;
/* 0x0E */ u16 group_idx;
/* 0x10 */ int unk10;
/* 0x14 */ omObjFunc func;
/* 0x18 */ Vec trans;
/* 0x24 */ Vec rot;
/* 0x30 */ Vec scale;
/* 0x3C */ u16 mdlcnt;
/* 0x40 */ s16 *model;
/* 0x44 */ u16 mtncnt;
/* 0x48 */ s16 *motion;
/* 0x4C */ int work[4];
/* 0x5C */ void *data;
} omObjData;
void omMasterInit(int prio, FileListEntry *ovl_list, int ovl_count, OverlayID start_ovl);

View file

@ -3,6 +3,10 @@
#define M_PI 3.141592653589793
#ifndef _MATH_INLINE
#define _MATH_INLINE static inline
#endif
#ifdef MATH_EXPORT_CONST
extern inline float sqrtf(float x)
{
@ -36,6 +40,7 @@ extern inline float sqrtf(float x)
return x;
}
#endif
double atan(double x);
double copysign(double x, double y);
double cos(double x);
@ -58,4 +63,14 @@ float acosf(float x);
#define abs(x) __abs(x)
_MATH_INLINE float fabsf(float x) { return (float)fabs((double)x); }
_MATH_INLINE float sinf(float x) { return (float)sin((double)x); }
_MATH_INLINE float cosf(float x) { return (float)cos((double)x); }
_MATH_INLINE float atan2f(float y, float x) { return (float)atan2((double)y, (double)x); }
_MATH_INLINE float fmodf(float x, float m) { return (float)fmod((double)x, (double)m); }
_MATH_INLINE float floorf(float x) { return floor(x); }
_MATH_INLINE float powf(float __x, float __y) { return pow(__x, __y); }
#endif

23
include/stddef.h Normal file
View file

@ -0,0 +1,23 @@
#ifndef _STDDEF_H_
#define _STDDEF_H_
#ifdef __cplusplus
extern "C" {
#endif
#define offsetof(type, member) ((size_t) & (((type*)0)->member))
/* These break 1.2.5 */
//typedef __typeof__(sizeof(0)) size_t;
//typedef __typeof__((char*)0 - (char*)0) ptrdiff_t;
typedef unsigned long size_t;
typedef long ptrdiff_t;
#ifndef NULL
#define NULL 0L
#endif
#ifdef __cplusplus
}
#endif
#endif

14
include/stdint.h Normal file
View file

@ -0,0 +1,14 @@
#ifndef _STDINT_H_
#define _STDINT_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned long int uintptr_t;
#ifdef __cplusplus
}
#endif
#endif

View file

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

View file

@ -108,7 +108,7 @@ static void BootProc(void)
WipeColorSet(255, 255, 255);
if(!SystemInitF) {
tick_prev = OSGetTick();
fn_800498F0();
CharManInit();
HuWindowInit();
MGSeqInit();
HuWinInit(1);

View file

@ -8,16 +8,16 @@
static void SubchrMain(void);
static u8 cur_direction[4];
static u8 dirPlayer[4];
static char *player_numstr[4] = {
static char *playerNumTbl[4] = {
"PLAYER1",
"PLAYER2",
"PLAYER3",
"PLAYER4"
};
static char *character_str[8] = {
static char *charNameTbl[8] = {
"MARIO",
"LUIGI",
"PEACH",
@ -28,7 +28,7 @@ static char *character_str[8] = {
"WALUIGI"
};
static char *ext_character_str[7] = {
static char *extCharNameTbl[7] = {
"",
"KOOPA",
"KINOPIO",
@ -51,7 +51,7 @@ static u16 GetBtns(void)
u16 btns;
btns = HuPadBtnDown[0];
if (cur_direction[0] != HuPadDStk[0]) {
if (dirPlayer[0] != HuPadDStk[0]) {
btns |= HuPadDStk[0];
}
return btns;
@ -65,7 +65,7 @@ static void SubchrMain()
for(i=0; i<4; i++) {
character[i] = GWPlayerCfg[i].character;
ext_character[i] = 0;
cur_direction[i] = 0;
dirPlayer[i] = 0;
}
cursor_pos = 0;
while(1) {
@ -77,16 +77,16 @@ static void SubchrMain()
y = 120;
for(i=0; i<4; i++, y += 16) {
fontcolor = FONT_COLOR_GREEN;
print8(x, y, 2.0f, player_numstr[i]);
print8(x, y, 2.0f, playerNumTbl[i]);
if(i == cursor_pos) {
fontcolor = FONT_COLOR_CYAN;
} else {
fontcolor = FONT_COLOR_GREEN;
}
if(ext_character[i] != 0) {
print8(x+200, y, 2.0f, ext_character_str[ext_character[i]]);
print8(x+200, y, 2.0f, extCharNameTbl[ext_character[i]]);
} else {
print8(x+200, y, 2.0f, character_str[character[i]]);
print8(x+200, y, 2.0f, charNameTbl[character[i]]);
}
}
if(GetBtns() & PAD_BUTTON_START) {
@ -156,8 +156,8 @@ static void SubchrMain()
HuPrcVSleep();
} while(1);
} else {
if(cur_direction[0] != HuPadDStk[0]) {
cur_direction[0] = HuPadDStk[0];
if(dirPlayer[0] != HuPadDStk[0]) {
dirPlayer[0] = HuPadDStk[0];
}
}
}

457
src/REL/w03Dll/file0.c Normal file
View file

@ -0,0 +1,457 @@
#include "common.h"
#include "dolphin.h"
#include "REL/executor.h"
#include "game/process.h"
#include "game/data.h"
void fn_8005B150(void*, void*);
void fn_1_740(void);
void fn_1_E0(void);
typedef void (*VoidFunc)(void);
extern const VoidFunc _ctors[];
extern const VoidFunc _dtors[];
typedef struct w03StructUnk0 {
/* 0x00 */ Vec unk_00;
/* 0x0C */ Vec unk_0C;
/* 0x18 */ Vec unk_18;
/* 0x24 */ s32 datanum;
} w03StructUnk0;
typedef struct w03State {
s8 unk0;
u8 unk1;
u8 unk2;
s8 unk3;
u16 unk4;
u16 unk6;
s16 unk8;
} w03State;
//DATA
w03StructUnk0 lbl_1_data_0[] = {
{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0004)},
{{145.099f, 65.6173f, -2004.14f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0005)},
{{-2004.14f, -1148.76f, -1095.54f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0006)},
{{1050.0f, 50.0f, -1810.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000B)},
{{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000B)},
{{1050.0f, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000A)},
{{-1950.0f, 0.0f, 1850.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x000A)},
{{1950.0f, 0.0f, -1800.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0010)},
{{-3150.0f, 0.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0011)},
{{-3150.0f, 270.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0077, 0x0012)},
{{2080.0f, 0.0f, -1635.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0002, 0x000D)},
{{-3000.0f, 0.0f, -500.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, MAKE_DATA_NUM(0x0002, 0x000D)},
};
s16 lbl_1_data_1E0 = 1;
s16 lbl_1_data_1E2 = 1;
s16 lbl_1_data_1E4 = 1;
s16 lbl_1_data_1E6 = 1;
s16 lbl_1_data_1E8 = 1;
typedef struct w03StructUnk1 {
f32 unk_00;
f32 unk_04;
f32 unk_08;
f32 unk_0C;
f32 unk_10;
f32 unk_14;
f32 unk_18;
f32 unk_1C;
} w03StructUnk1;
w03StructUnk1 lbl_1_data_1EC = {
0.0f, 118.0f, 120.0f, 180.0f, 180.0f, 240.0f, 240.0f, 300.0f
};
s32 lbl_1_data_20C = {
MAKE_DATA_NUM(0x0077, 0x001C),
DATA_NUM_LISTEND
};
s32 lbl_1_data_214 = {
MAKE_DATA_NUM(0x0002, 0x000E),
DATA_NUM_LISTEND
};
s32 lbl_1_data_21C[] = {
-1, -1, -1, -1
};
Vec lbl_1_data_22C[] = {
{3900.0f, 0.0f, 2100.0f},
{3900.0f, 0.0f, 3600.0f},
{2700.0f, 0.0f, 5400.0f},
{2700.0f, 0.0f, 6300.0f},
};
s32 lbl_1_data_25C[] = {
0x0000044B, 0x00000439, 0x00000439, 0x0000044D
};
s32 lbl_1_data_26C[] = {
0x0000044C, 0x0000043A, 0x0000043A, 0x0000044E
};
//BSS
w03State* lbl_1_bss_0;
void fn_1_CF4(void);
void fn_1_0(void) {
fn_8005B150(&fn_1_E0, &fn_1_740);
}
int _prolog(void) {
const VoidFunc* ctors = _ctors;
while (*ctors != 0) {
(**ctors)();
ctors++;
}
fn_8005B150(&fn_1_E0, &fn_1_740);
return 0;
}
void _epilog(void) {
const VoidFunc* dtors = _dtors;
while (*dtors != 0) {
(**dtors)();
dtors++;
}
}
void fn_1_E0(void) {
Vec* var_r29;
f32 var_f30;
f32 var_f31;
s32 var_r31;
s32 var_r31_2;
w03StructUnk0* temp_r30;
s32 i;
lbl_1_bss_0 = (w03State*)&GWSystem.board_data;
lbl_1_bss_0->unk3 = 0;
fn_800772EC(0x770000);
lbl_1_data_1E0 = fn_8006D9A4(0x770001, NULL, 0);
fn_8006DDE8(lbl_1_data_1E0, -1.0f);
fn_8006F1A8(lbl_1_data_1E0, 0.0f, 0.0f, 0.0f);
fn_8006E2B8(lbl_1_data_1E0, 0, 0x40000001);
lbl_1_data_1E8 = fn_8006D9A4(0x770003, NULL, 0);
fn_8006DDE8(lbl_1_data_1E8, -1.0f);
fn_8006F1A8(lbl_1_data_1E8, 0.0f, 0.0f, 0.0f);
fn_8006F61C(lbl_1_data_1E8, 2);
lbl_1_data_1E2 = fn_8006D9A4(0x770002, NULL, 0);
fn_8006DDE8(lbl_1_data_1E2, -1.0f);
fn_8006F1A8(lbl_1_data_1E2, 0.0f, 0.0f, 0.0f);
fn_8006E2B8(lbl_1_data_1E2, 0, 0x40000001);
lbl_1_data_1E4 = fn_8006D9A4(0x77001B, &lbl_1_data_20C, 0);
fn_8006F1A8(lbl_1_data_1E4, 0.0f, 0.0f, 0.0f);
fn_8006E2B8(lbl_1_data_1E4, 1, 0x40000001);
lbl_1_data_1E6 = fn_8006D9A4(0x2000D, &lbl_1_data_214, 0);
fn_8006F1A8(lbl_1_data_1E6, 0.0f, 0.0f, 0.0f);
fn_8006E2B8(lbl_1_data_1E6, 1, 0x40000001);
for (i = 0; i < 0xC; i++) {
temp_r30 = &lbl_1_data_0[i];
if (temp_r30->datanum != -1) {
if ((i == 10) || (i == 11)) {
var_r29 = &lbl_1_data_214;
} else {
var_r29 = NULL;
}
lbl_1_bss_C[i]= fn_8006D9A4(temp_r30->datanum, var_r29, 0);
fn_8006F158(lbl_1_bss_C[i], temp_r30);
fn_8006F220(lbl_1_bss_C[i], &temp_r30->unk_0C);
fn_8006F2E8(lbl_1_bss_C[i], &temp_r30->unk_18);
fn_8006F50C(lbl_1_bss_C[i], 1);
}
}
fn_8006E2B8(lbl_1_bss_C[10], 1, 0x40000001);
fn_8006E2B8(lbl_1_bss_C[11], 1, 0x40000001);
fn_8006E2B8(lbl_1_bss_C[7], 0, 0x40000002);
fn_8006E2B8(lbl_1_bss_C[9], 0, 0x40000002);
fn_8006E2B8(lbl_1_bss_C[1], 0, 0x40000002);
fn_1_3058();
fn_1_6494();
fn_1_7ABC();
fn_1_9A7C();
fn_8005D10C(&fn_1_884, &fn_1_8F0);
fn_80073FF4(&fn_1_910);
fn_80073FFC(&fn_1_A74);
fn_80074004(&fn_1_AF8);
fn_80083EDC(lbl_1_data_1E4);
fn_800A4F6C(lbl_1_data_1E6);
fn_8007A83C(lbl_1_data_1E6);
fn_80077AAC(lbl_1_data_1E6);
fn_80064D84(0x0000C000);
fn_80064D84(0x3000);
fn_1_CF4();
fn_8006E2B8(lbl_1_bss_C[0], 0, 0x40000001);
if (lbl_1_bss_0->unk0 != 0) {
var_f30 = lbl_1_data_1EC.unk_10;
var_f31 = lbl_1_data_1EC.unk_14;
fn_1_63F4(0);
} else {
var_f30 = lbl_1_data_1EC.unk_00;
var_f31 = lbl_1_data_1EC.unk_04;
fn_1_63F4(1);
}
fn_8006E0B0(lbl_1_bss_C[0], var_f30, var_f31);
fn_8006E2B8(lbl_1_bss_C[2], 0, 0x40000001);
fn_8006E0B0(lbl_1_bss_C[2], 1, 0x64);
fn_1_785C();
if (lbl_1_bss_0->unk2 != 0) {
for (i = 0; i < 4; i++) {
if ((lbl_1_bss_0->unk2 & (1 << i)) != 0) {
fn_80064338(i, &fn_1_2930);
break;
}
}
}
fn_1_DEC();
}
void fn_1_740(void) {
s32 i;
fn_1_10B0();
fn_1_9A9C();
fn_1_7B58();
for (i = 0; i < 0x0C; i++) {
fn_8006DB90(lbl_1_bss_C[i]);
lbl_1_bss_C[i] = -1;
}
if (lbl_1_data_1E6 != -1) {
fn_8006DB90(lbl_1_data_1E6);
lbl_1_data_1E6 = -1;
}
if (lbl_1_data_1E4 != -1) {
fn_8006DB90(lbl_1_data_1E4);
lbl_1_data_1E4 = -1;
}
if (lbl_1_data_1E0 != -1) {
fn_8006DB90(lbl_1_data_1E0);
lbl_1_data_1E0 = -1;
}
if (lbl_1_data_1E2 != -1) {
fn_8006DB90(lbl_1_data_1E2);
lbl_1_data_1E2 = -1;
}
}
extern f32 lbl_1_rodata_18;
extern f32 lbl_1_rodata_1C;
void fn_1_884(void) {
s32 var = fn_8006DBD4(lbl_1_data_1E0);
Hu3DModelLightInfoSet(var, 1);
Hu3DFogSet(lbl_1_rodata_18, lbl_1_rodata_1C, 0xE4U, 0xF0U, 0xFFU);
}
void fn_1_8F0(void) {
Hu3DFogClear();
}
s32 fn_1_910(void) {
u32 temp_r3;
s32 cur_player_index;
s32 unkC;
cur_player_index = GWSystem.player_curr;
unkC = GWPlayer[cur_player_index].unkC;
temp_r3 = fn_80074138(0, unkC);
if (temp_r3 & 0xC000) {
if ((fn_8006413C(cur_player_index) == 2) || ((u8) (( GWPlayer[cur_player_index].placement >> 4U) & 1))) {
return 0;
}
if (temp_r3 & 0x4000) {
if (lbl_1_bss_0->unk1 == 0) {
return 0;
}
}
else if (temp_r3 & 0x8000 && lbl_1_bss_0->unk1 != 0) {
return 0;
}
return fn_1_309C();
}
if (temp_r3 & 0x200) {
if ((fn_8006413C(cur_player_index) == 2) || ((u8) ((GWPlayer[cur_player_index].placement >> 4U) & 1) != 0)) {
return 0;
}
return fn_1_675C();
}
return 0;
}
void fn_1_A74(void) {
s16 temp = GWPlayer[GWSystem.player_curr].unkC;
u32 var = fn_80074138(0, temp) & 0x600000;
if (var + -0x200000 == 0) {
fn_1_7BA8();
return;
}
if (var + -0x400000 == 0) {
fn_1_9AA0();
}
}
void fn_1_AF8(void) {
if ((fn_8006413C(GWSystem.player_curr) == 0) && (fn_1_12C8() != 0) && (lbl_1_bss_0->unk2 != 0)) {
fn_80064D84(0xC00);
}
}
void fn_1_B5C(s32 arg0) {
f32 var_f31;
f32 var_f30;
f32 var_f29;
f32 var_f28;
f32 temp;
if (arg0 != 0) {
var_f30 = lbl_1_data_1EC.unk_08;
var_f29 = lbl_1_data_1EC.unk_0C;
var_f31 = lbl_1_data_1EC.unk_10;
var_f28 = lbl_1_data_1EC.unk_14;
fn_1_63F4(0);
} else {
var_f30 = lbl_1_data_1EC.unk_18;
var_f29 = lbl_1_data_1EC.unk_1C;
var_f31 = lbl_1_data_1EC.unk_00;
var_f28 = lbl_1_data_1EC.unk_04;
fn_1_63F4(1);
}
fn_8006E2B8(lbl_1_bss_C[0], 0, 0);
fn_8006E674(lbl_1_bss_C[0], var_f30);
while (1) {
temp = fn_8006E6F8(lbl_1_bss_C[0]);
if (temp >= var_f29) {
break;
}
HuPrcVSleep();
}
fn_8006E5C4(lbl_1_bss_C[0], 0x40000001);
fn_8006E674(lbl_1_bss_C[0], var_f31);
fn_8006E0B0(lbl_1_bss_C[0], (s32) var_f31, (s32) var_f28);
}
void fn_1_CF4(void) {
s16 var;
s32 i, j;
spaceData* temp_r28;
spaceData* temp_r31;
for (i = 0; i < fn_800740B4(0); i++) {
var = i + 1;
temp_r31 = fn_800740C4(0, var);
for (j = 0; j < temp_r31->num_links; j++) {
if (fn_80074138(0, temp_r31->links[j]) & 0xC00) {
temp_r28 = fn_800740C4(0, temp_r31->links[j]);
if (lbl_1_bss_0->unk0 != 0) {
temp_r28->flag |= 0x04000000;
fn_80064D84(0xC00);
} else {
temp_r28->flag &= ~0x04000000;
fn_80064D94(0xC00);
}
}
}
}
}
void fn_1_DEC(void) {
Vec sp20;
Vec sp14;
Vec sp8;
omObjData* temp_r3;
s32 var_r31;
s32 var_r31_2;
w03UnkStruct2* temp_r29;
s32 i;
temp_r3 = omAddObjEx(lbl_801D3ED4, 0x101, 0, 0, -1, &fn_1_10E4);
lbl_1_bss_4 = temp_r3;
temp_r29 = (w03UnkStruct2*)&temp_r3->work[0];
temp_r29->unk0 = 0;
lbl_1_bss_8 = 0;
fn_8005D530(&sp20);
fn_8005D628(&sp14);
HuAudFXListnerSetEX(&sp20, &sp14, 1200.0f, 4800.0f, 36000.0f, 0.0f, 1200.0f);
for (i = 0; i < 4; i++) {
sp8.x = lbl_1_data_22C[i].x - 3600.0f;
sp8.y = lbl_1_data_22C[i].y;
sp8.z = lbl_1_data_22C[i].z - 3600.0f;
if (lbl_1_bss_0->unk2 != 0) {
lbl_1_data_21C[i] = HuAudFXEmiterPlay(lbl_1_data_26C[i], &sp8);
} else {
lbl_1_data_21C[i] = HuAudFXEmiterPlay(lbl_1_data_25C[i], &sp8);
}
}
for (i = 0; i < 4; i++) {
if ((WipeStatGet() != 0) || (_CheckFlag(0x1001CU) != 0)) {
HuAudFXVolSet(lbl_1_data_21C[i], 0);
} else {
HuAudFXVolSet(lbl_1_data_21C[i], 0x7F);
}
}
if (_CheckFlag(0x10010) == 0) {
if (lbl_1_bss_8 == 0) {
HuAudFXPauseAll(1);
lbl_1_bss_8 = 1;
}
} else if (lbl_1_bss_8 != 0) {
HuAudFXPauseAll(0);
lbl_1_bss_8 = 0;
}
}
void fn_1_10B0(void) {
if (lbl_1_bss_4) {
((w03UnkStruct2*)&lbl_1_bss_4->work[0])->unk0 = 1;
}
}
void fn_1_10E4(omObjData* arg0) {
Vec sp14;
Vec sp8;
s32 i;
w03UnkStruct2* temp_r29;
temp_r29 = (w03UnkStruct2*)&arg0->work[0];
if (temp_r29->unk0 != 0 || (fn_8005B6A8() != 0)) {
for (i = 0; i < 4; i++) {
if (lbl_1_data_21C[i] != -1) {
HuAudFXFadeOut(lbl_1_data_21C[i], 100);
}
}
HuAudFXListnerKill();
lbl_1_bss_4 = 0;
omDelObjEx(HuPrcCurrentGet(), arg0);
return;
}
fn_8005D628(&sp8);
fn_8005D578(&sp14);
for (i = 0; i < 4; i++) {
if ((WipeStatGet() != 0) || (_CheckFlag(0x1001C) != 0)) {
HuAudFXVolSet(lbl_1_data_21C[i], 0);
} else {
HuAudFXVolSet(lbl_1_data_21C[i], 0x7F);
}
}
sp14.y += 2000.0f;
if (_CheckFlag(0x10010) == 0) {
if (lbl_1_bss_8 == 0) {
HuAudFXPauseAll(1);
lbl_1_bss_8 = 1;
}
} else if (lbl_1_bss_8 != 0) {
HuAudFXPauseAll(0);
lbl_1_bss_8 = 0;
}
HuAudFXListnerUpdate(&sp14, &sp8);
}

75
src/REL/w03Dll/file1.c Normal file
View file

@ -0,0 +1,75 @@
#include "common.h"
#include "dolphin.h"
#include "REL/executor.h"
#include "game/process.h"
#include "game/data.h"
//DATA file1
s16 lbl_1_data_280 = -1;
s16 lbl_1_data_282 = -1;
s16 lbl_1_data_284 = -1;
s16 lbl_1_data_286 = -1;
s32 lbl_1_data_288 = -1;
//char lbl_1_data_28C[] = "%d";
//shouldn't use MAKE_DATA_NUM
s32 lbl_1_data_290[] = {
MAKE_DATA_NUM(0x005F, 0x0062),
MAKE_DATA_NUM(0x001A, 0x0062),
MAKE_DATA_NUM(0x006D, 0x0062),
MAKE_DATA_NUM(0x008A, 0x0062),
MAKE_DATA_NUM(0x0085, 0x0062),
MAKE_DATA_NUM(0x0011, 0x0062),
MAKE_DATA_NUM(0x000D, 0x0062),
MAKE_DATA_NUM(0x0081, 0x0062),
};
//shouldn't use MAKE_DATA_NUM
s32 lbl_1_data_2B0[] = {
MAKE_DATA_NUM(0x005F, 0x0033),
MAKE_DATA_NUM(0x001A, 0x0033),
MAKE_DATA_NUM(0x006D, 0x0033),
MAKE_DATA_NUM(0x008A, 0x0033),
MAKE_DATA_NUM(0x0085, 0x0033),
MAKE_DATA_NUM(0x0011, 0x0033),
MAKE_DATA_NUM(0x000D, 0x0033),
MAKE_DATA_NUM(0x0081, 0x0033),
};
s32 lbl_1_data_2D0[] = {
0x125, 0x165, 0x1A5, 0x1E5, 0x225, 0x265, 0x2A5, 0x2E5
};
s32 lbl_1_data_2F0[] = {
0x12E, 0x16E, 0x1AE, 0x1EE, 0x22E, 0x26E, 0x2AE, 0x2EE
};
s16 lbl_1_data_310 = -1;
s16 lbl_1_data_312 = -1;
s16 lbl_1_data_314 = -1;
s16 lbl_1_data_316 = -1;
s32 lbl_1_data_318[] = {
MAKE_DATA_NUM(0x0077, 0x0016),
MAKE_DATA_NUM(0x0077, 0x0017),
MAKE_DATA_NUM(0x0077, 0x0018),
MAKE_DATA_NUM(0x0077, 0x0019),
MAKE_DATA_NUM(0x0077, 0x001A),
DATA_NUM_LISTEND
};
char lbl_1_data_330[] = "itemhook_oya";
char lbl_1_data_33D[] = "jyanA";
char lbl_1_data_343[] = "jyanB";
char* lbl_1_data_34C[] = {
&lbl_1_data_33D, &lbl_1_data_343
};
char lbl_1_data_354[] = "coin";
char* lbl_1_data_35C[] = {
&lbl_1_data_33D, &lbl_1_data_343
};

View file

@ -15,7 +15,7 @@ void fn_1_AEC(void) {
lbl_1_bss_1C = 0;
lbl_1_bss_1E = BoardModelCreate(MAKE_DATA_NUM(DATADIR_W10, 15), &lbl_1_data_78, 0);
BoardModelMotionStart(lbl_1_bss_1E, 1, 0x40000001);
fn_800B42BC(lbl_1_bss_1E);
BoardTutorialHostSet(lbl_1_bss_1E);
BoardModelLayerSet(lbl_1_bss_1E, 6);
lbl_1_bss_18 = HuPrcCreate(fn_1_C20, 0x1FFF, 0x1800, 0);
}
@ -48,7 +48,7 @@ void fn_1_C20(void) {
while (1) {
if (BoardIsKill() != 0) {
BoardModelKill(lbl_1_bss_1E);
fn_800B42BC(-1);
BoardTutorialHostSet(-1);
HuPrcEnd();
}
Hu3D2Dto3D(&lbl_1_data_80[lbl_1_bss_1C], 1, &sp14);

View file

@ -65,7 +65,7 @@ inline s32 get_current_board(void) {
return GWSystem.board;
}
void fn_1_E0(void) {
void BoardInit(void) {
f32 sp10;
f32 spC[2];
s32 sp8;
@ -80,13 +80,13 @@ void fn_1_E0(void) {
lbl_1_bss_0->unk0 = 0;
lbl_1_bss_0->unk4 = 0;
lbl_1_bss_0->unk6 = 0;
fn_800B3FD8(&fn_1_1AAC);
BoardTutorialHookSet(&fn_1_1AAC);
fn_1_AEC();
fn_1_1D68();
lbl_1_bss_C = 0;
BoardSpaceInit(MAKE_DATA_NUM(DATADIR_W10, 0));
temp = BoardSpaceFlagSearch(0, 1);
fn_800B4274(temp, 1);
BoardTutorialBlockSetPos(temp, 1);
lbl_1_data_28 = BoardModelCreate(MAKE_DATA_NUM(DATADIR_W10, 1), NULL, 0);
fn_8006DDE8(lbl_1_data_28, -1.0f);
BoardModelPosSet(lbl_1_data_28, 0.0f, 0.0f, 0.0f);
@ -105,7 +105,7 @@ void fn_1_E0(void) {
BoardModelMotionStart(lbl_1_data_32, 1, 0x40000001);
lbl_1_data_30 = BoardModelCreate(MAKE_DATA_NUM(DATADIR_BGUEST, 13), lbl_1_data_6C, 0);
BoardModelMotionStart(lbl_1_data_30, 1, 0x40000001);
fn_8005D10C(&fn_1_8C0, &fn_1_904);
BoardLightHookSet(&fn_1_8C0, &fn_1_904);
for (i = 0; i < ARRAY_COUNT(lbl_1_data_0); i++) {
temp_r30 = &lbl_1_data_0[i];
if (temp_r30->unk24 != -1) {
@ -138,7 +138,7 @@ void fn_1_E0(void) {
HuWinMesPalSet(lbl_1_bss_E, 7, 0, 0, 0);
}
void fn_1_6D8(void) {
void BoardDestroy(void) {
s32 i;
for (i = 0; i < 1; i++) {
if (lbl_1_bss_10[i] != 0) {

View file

@ -64,7 +64,7 @@ void fn_1_F6C(void) {
fn_1_1E3C(2, 0x122, 0x8C);
fn_1_BA0(0x2E000F);
fn_1_1FB0();
fn_800B4264(0, 0x50, 1);
BoardTutorialDirInputSet(0, 0x50, 1);
}
void fn_1_FB8(void) {
@ -72,14 +72,14 @@ void fn_1_FB8(void) {
fn_1_BA0(0x2E0010);
fn_1_1FB0();
fn_1_BA0(0x2E0011);
fn_800B4264(-0x50, 0, 1);
BoardTutorialDirInputSet(-0x50, 0, 1);
}
void fn_1_1010(void) {
fn_1_1E3C(4, 0x122, 0x8C);
fn_1_BA0(0x2E0012);
fn_1_1FB0();
fn_800B4264(0, 0x50, 1);
BoardTutorialDirInputSet(0, 0x50, 1);
}
void fn_1_105C(void) {
@ -94,7 +94,7 @@ void fn_1_1098(void) {
void fn_1_10C0(void) {
fn_1_BA0(0x2E0015);
fn_800B4264(-0x50, 0, 1);
BoardTutorialDirInputSet(-0x50, 0, 1);
}
void fn_1_10F8(void) {
@ -119,7 +119,7 @@ void fn_1_11A0(void) {
fn_1_BA0(0x2E0019);
temp = BoardSpaceFlagSearch(0, 1);
fn_800B4274(temp, 0);
BoardTutorialBlockSetPos(temp, 0);
}
void fn_1_11EC(void) {
@ -127,13 +127,13 @@ void fn_1_11EC(void) {
fn_1_BA0(0x2E001A);
temp = BoardSpaceFlagSearch(0, 1);
fn_800B4274(temp, 0);
fn_800B42B4(0);
BoardTutorialBlockSetPos(temp, 0);
BoardTutorialItemSet(0);
}
void fn_1_1240(void) {
fn_1_BA0(0x2E001B);
fn_800B4264(0x50, 0, 1);
BoardTutorialDirInputSet(0x50, 0, 1);
}
void fn_1_1278(void) {
@ -142,8 +142,8 @@ void fn_1_1278(void) {
void fn_1_12A0(void) {
fn_1_BA0(0x2E001D);
fn_80062B74(2, 1);
fn_800B42B4(1);
BoardPlayerItemAdd(2, 1);
BoardTutorialItemSet(1);
}
void fn_1_12DC(void) {
@ -230,7 +230,7 @@ void fn_1_13A4(void) {
fn_80070EE8(0, 0x1F3);
BoardKill();
}
fn_800B3FD8(NULL);
BoardTutorialHookSet(NULL);
while (1) {
HuPrcVSleep();
}

View file

@ -107,7 +107,7 @@ void fn_1_1834(void) {
void fn_1_18BC(void) {
fn_1_BA0(0x2E0028);
fn_1_BA0(0x2E0029);
lbl_801A52E8 = 0;
boardTutorialData = 0;
fn_8008853C(0);
}
@ -154,7 +154,7 @@ void fn_1_1984(void) {
OSReport(lbl_1_data_98);
fn_80070EE8(0, 0x1F3);
BoardKill();
fn_800B3FD8(NULL);
BoardTutorialHookSet(NULL);
}
}
}
@ -183,7 +183,7 @@ int fn_1_1AAC(s16 arg0, s32 arg1) {
OSReport(lbl_1_data_98);
fn_80070EE8(0, 0x1F3);
BoardKill();
fn_800B3FD8(NULL);
BoardTutorialHookSet(NULL);
}
}
}

View file

@ -116,8 +116,7 @@ DataReadStat *HuDataDirRead(s32 data_num)
status = HuDataReadChk(data_num);
read_stat = &ReadDataStat[status];
} else {
status = HuDataReadStatusGet();
if(status == -1) {
if((status = HuDataReadStatusGet()) == -1) {
OSReport("data.c: Data Work Max Error\n");
return NULL;
}
@ -156,8 +155,7 @@ DataReadStat *HuDataDirReadNum(s32 data_num, s32 num)
read_stat->num = num;
} else {
OSReport("data num %x\n", data_num);
status = HuDataReadStatusGet();
if(status == -1) {
if((status = HuDataReadStatusGet()) == -1) {
OSReport("data.c: Data Work Max Error\n");
return NULL;
}

View file

@ -46,7 +46,7 @@ static inline void ResetBoardSettings(void)
void GWInit(void)
{
GWResetGameStat();
GWGameStatReset();
_InitFlag();
GWErase();
InitPlayerConfig();
@ -112,7 +112,7 @@ static inline void ResetFlag(GameStat *game_stat)
game_stat->field10F_bit6 = game_stat->field110_bit6 = 0;
}
void GWResetGameStat(void)
void GWGameStatReset(void)
{
GameStat *game_stat = &GWGameStatDefault;
memset(game_stat, 0, sizeof(GameStat));
@ -134,7 +134,7 @@ void GWResetGameStat(void)
ResetBoardSettings();
}
s16 GWGetMessSpeed(void)
s16 GWMessSpeedGet(void)
{
if(GWSystem.mess_delay > 48) {
GWSystem.mess_speed = 1;
@ -143,19 +143,19 @@ s16 GWGetMessSpeed(void)
return GWSystem.mess_delay;
}
void GWSetMGRecord(int index, s32 value)
void GWMGRecordSet(int index, s32 value)
{
if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
GWGameStat.mg_record[index] = value;
}
}
s32 GWGetMGRecord(int index)
s32 GWMGRecordGet(int index)
{
return GWGameStat.mg_record[index];
}
void GWGetCharColor(int character, GXColor *color)
void GWCharColorGet(int character, GXColor *color)
{
GXColor char_color[] = {
{ 227, 67, 67, 255 },
@ -170,7 +170,7 @@ void GWGetCharColor(int character, GXColor *color)
*color = char_color[character];
}
void GWSetBoardPlayCount(int board, u8 value)
void GWBoardPlayCountSet(int board, u8 value)
{
if(value > 99) {
value = 99;
@ -178,7 +178,7 @@ void GWSetBoardPlayCount(int board, u8 value)
GWGameStat.board_play_count[board] = value;
}
void GWAddBoardPlayCount(int board, u8 value)
void GWBoardPlayCountAdd(int board, u8 value)
{
value += GWGameStat.board_play_count[board];
if(value > 99) {
@ -188,32 +188,32 @@ void GWAddBoardPlayCount(int board, u8 value)
}
u8 GWGetBoardPlayCount(int board)
u8 GWBoardPlayCountGet(int board)
{
return GWGameStat.board_play_count[board];
}
void GWSetBoardMaxStars(int board, int value)
void GWBoardMaxStarsSet(int board, int value)
{
GWGameStat.board_max_stars[board] = value;
}
u16 GWGetBoardMaxStars(int board)
u16 GWBoardMaxStarsGet(int board)
{
return GWGameStat.board_max_stars[board];
}
void GWSetBoardMaxCoins(int board, int value)
void GWBoardMaxCoinsSet(int board, int value)
{
GWGameStat.board_max_coins[board] = value;
}
u16 GWGetBoardMaxCoins(int board)
u16 GWBoardMaxCoinsGet(int board)
{
return GWGameStat.board_max_coins[board];
}
int GWIncBoardWinCount(int character, int board)
int GWBoardWinCountInc(int character, int board)
{
int win_count = GWGameStat.board_win_count[board][character]+1;
if(win_count > 99) {
@ -223,17 +223,17 @@ int GWIncBoardWinCount(int character, int board)
return win_count;
}
int GWGetBoardWinCount(int character, int board)
int GWBoardWinCountGet(int character, int board)
{
return GWGameStat.board_win_count[board][character];
}
void GWSetBoardWinCount(int character, int board, int value)
void GWBoardWinCountSet(int character, int board, int value)
{
GWGameStat.board_win_count[board][character] = value;
}
int GWGetMGAvail(int id)
int GWMGAvailGet(int id)
{
int word;
int bit;
@ -247,7 +247,7 @@ int GWGetMGAvail(int id)
}
}
int GWSetMGAvail(int id)
int GWMGAvailSet(int id)
{
int word;
int bit;
@ -257,7 +257,7 @@ int GWSetMGAvail(int id)
GWGameStat.mg_avail[word] |= (1 << bit);
}
int GWGetMGCustom(int id)
int GWMGCustomGet(int id)
{
int word;
int bit;
@ -271,7 +271,7 @@ int GWGetMGCustom(int id)
}
}
int GWSetMGCustom(int id)
int GWMGCustomSet(int id)
{
int word;
int bit;
@ -281,7 +281,7 @@ int GWSetMGCustom(int id)
GWGameStat.mg_custom[word] |= (1 << bit);
}
int GWResetMGCustom(int id)
int GWMGCustomReset(int id)
{
int word;
int bit;
@ -291,12 +291,12 @@ int GWResetMGCustom(int id)
GWGameStat.mg_custom[word] &= ~(1 << bit);
}
s16 GWGetCoins(int player)
s16 GWCoinsGet(int player)
{
return GWPlayer[player].coins;
}
void GWSetCoins(int player, s16 value)
void GWCoinsSet(int player, s16 value)
{
if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) {
if(value < 0) {
@ -312,12 +312,12 @@ void GWSetCoins(int player, s16 value)
}
}
void GWAddCoins(int player, s16 amount)
void GWCoinsAdd(int player, s16 amount)
{
GWSetCoins(player, GWPlayer[player].coins+amount);
GWCoinsSet(player, GWPlayer[player].coins+amount);
}
void GWSetStars(int player, s16 value)
void GWStarsSet(int player, s16 value)
{
if(value < 0) {
value = 0;
@ -331,17 +331,17 @@ void GWSetStars(int player, s16 value)
GWPlayer[player].stars = value;
}
void GWAddStars(int player, s16 amount)
void GWStarsAdd(int player, s16 amount)
{
GWSetStars(player, GWPlayer[player].stars+amount);
GWStarsSet(player, GWPlayer[player].stars+amount);
}
s16 GWGetStars(int player)
s16 GWStarsGet(int player)
{
return GWPlayer[player].stars;
}
void GWSetTotalStars(s16 value)
void GWTotalStarsSet(s16 value)
{
if(value < 0) {
value = 0;
@ -352,12 +352,12 @@ void GWSetTotalStars(s16 value)
GWGameStat.total_stars = value;
}
void GWAddTotalStars(s16 amount)
void GWTotalStarsAdd(s16 amount)
{
GWSetTotalStars(GWGameStat.total_stars+amount);
GWTotalStarsSet(GWGameStat.total_stars+amount);
}
u16 GWGetTotalStars(void)
u16 GWTotalStarsGet(void)
{
return GWGameStat.total_stars;
}

View file

@ -139,7 +139,7 @@ void omOvlReturnEx(s16 level, s16 arg2)
void omOvlKill(s16 arg)
{
fn_8004D6F4(-1);
CharModelKillAll(-1);
MGSeqKillAll();
Hu3DAllKill();
HuWinAllKill();

View file

@ -3,7 +3,7 @@
#include "game/memory.h"
#include "game/flag.h"
extern s8 lbl_801D429C;
extern s8 boardTutorialF;
s16 HuSysVWaitGet(s16 old);
@ -111,7 +111,7 @@ void WipeExecAlways(void)
void WipeCreate(s16 mode, s16 type, s16 duration)
{
WipeState *wipe;
if(_CheckFlag(FLAG_ID_MAKE(1, 11)) && lbl_801D429C) {
if(_CheckFlag(FLAG_ID_MAKE(1, 11)) && boardTutorialF) {
return;
}
wipe = &wipeData;

43
src/msm/msmfio.c Normal file
View file

@ -0,0 +1,43 @@
#include "dolphin.h"
struct msmFio {
BOOL (*open)(s32, DVDFileInfo *);
BOOL (*read)(DVDFileInfo *, void *, s32, s32, s32);
BOOL (*close)(DVDFileInfo *);
};
static struct msmFio fio;
BOOL msmFioClose(DVDFileInfo *fileInfo)
{
return fio.close(fileInfo);
}
BOOL msmFioRead(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset)
{
return fio.read(fileInfo, addr, length, offset, 2);
}
BOOL msmFioOpen(s32 entrynum, DVDFileInfo *fileInfo)
{
return fio.open(entrynum, fileInfo);
}
void msmFioInit(void *open, void *read, void *close)
{
if(open) {
fio.open = open;
} else {
fio.open = DVDFastOpen;
}
if(read) {
fio.read = read;
} else {
fio.read = DVDReadPrio;
}
if(close) {
fio.close = close;
} else {
fio.close = DVDClose;
}
}

View file

@ -509,11 +509,12 @@ def generate_build_ninja(config, build_config):
lib, obj = result
lib_name = lib["lib"]
src_dir = Path(lib.get("src_dir", config.src_dir))
options = obj.options
completed = obj.completed
unit_src_path = config.src_dir / options["source"]
unit_src_path = src_dir / options["source"]
if not unit_src_path.exists():
if config.warn_missing_source or completed:
print(f"Missing source file {unit_src_path}")